# GEO: Geo API

> Dated public records of world events, each with its source and time, over REST with a geo key, as signed webhooks and over MCP. The free JSON needs no key and covers 30 days. Context for a session, never a trading signal.

Source: https://firmtape.com/docs/developers/geo

Dated public records of world events, each with its source and time, over REST with a `geo` key, as signed webhooks and over MCP. The free JSON needs no key and covers 30 days. Context for a session, never a trading signal.

**This product serves:** [GEO: The API, webhooks and MCP](https://firmtape.com/docs/geo#geo-api), [GEO: Geo alerts](https://firmtape.com/docs/geo#geo-alerts). **Plan:** [GEO](https://firmtape.com/features/geo). Free to read, no account. Geo alerts, the API and Team are Geo's own plans: Geo plans.

Two servers: the free JSON at `https://firmtape.com/geo/api` (no key, the last 30 days, the pages' own data) and the paid API at `https://geo.firmtape.com/v1` (a `geo` key on the Geo API or Team plan, a year of history, every field).

Every record carries its `source` and `url`, and `attribution` where the source asks for a citation. Show them next to anything you display. Team may show records to its own customers with that credit; no plan allows reselling the records as a feed.

## Endpoints

| Request | What it gives | Plan | Key scope |
| --- | --- | --- | --- |
| `GET /items` | [Records, free](https://firmtape.com/docs/developers/geo/free-items) | Free | none |
| `GET /weeks` | [Weeks with records, free](https://firmtape.com/docs/developers/geo/free-weeks) | Free | none |
| `GET /countries` | [Countries named, free](https://firmtape.com/docs/developers/geo/free-countries) | Free | none |
| `GET /health` | [Feeds and their health, free](https://firmtape.com/docs/developers/geo/free-sources) | Free | none |
| `GET /v1/items` | [Records](https://firmtape.com/docs/developers/geo/items) | GEO | geo |
| `GET /v1/sources` | [Feeds](https://firmtape.com/docs/developers/geo/sources) | GEO | geo |
| `GET /v1/usage` | [This month's usage](https://firmtape.com/docs/developers/geo/usage) | GEO | geo |
| `GET /v1/export.csv` | [CSV export](https://firmtape.com/docs/developers/geo/export-csv) | GEO | geo |

## More

- [Geo MCP server](https://firmtape.com/docs/developers/geo/mcp): Seven tools over the Geo records at `https://geo.firmtape.com/mcp`, with the `geo` key as a Bearer header. Tool calls count toward the month's calls; listing tools does not.

## Webhook events

- [geo.record](https://firmtape.com/docs/developers/geo/events/geo.record): Sent the minute a record that one of your Geo alert rules matches is written.
- [geo.test](https://firmtape.com/docs/developers/geo/events/geo.test): Sent by **Test** beside an endpoint on Account, Geo, Webhooks.

## Limits

| What | Limit | Notes |
| --- | --- | --- |
| Geo API and Geo MCP server | 20,000 calls a month on Geo API, 100,000 on Geo Team, REST and MCP together | The month is the calendar month in UTC. A malformed call is not counted. |
