canonical: https://jentic.com/apis/movesurge.com/movesurge

# MoveSurge Institutional Events API

The MoveSurge Institutional Events API serves a rolling history of curated market-moving news events, each tagged with the instruments it touches, an impact level, an analysis block, and a measured market reaction. Clients list events filtered by ticker symbols, categories, and a minimum impact threshold, page backward or forward with opaque cursors, and resume after a disconnect from a publication or update watermark. A single event can be fetched by its stable public ID, and a health route reports the desk's contracted history window and per-minute request allowance. Real-time delivery runs over a separate WebSocket stream that pushes events, not prices.

## For AI agents

List and fetch curated market-moving news events from MoveSurge, filtered by symbol, category, and impact, with each event's instruments, analysis, and measured market reaction.

## Scope

Does not provide price quotes, OHLC candles, order books, or trade execution. Use for curated market-moving news events and their measured reactions only.

## Capabilities

- List curated market-moving events filtered by comma-separated ticker symbols and categories
- Restrict the event feed to items at or above a min_impact level of low, medium, high, or critical
- Resume an event feed after a disconnect using the published_after or updated_after watermark
- Retrieve one event by its stable public event ID with headline, classification, instruments, and market reaction
- Check credential health, contracted history window, and per-minute request allowance for the desk
- Read the JSON Schema and protocol reference for events, errors, and WebSocket close codes

## Use cases

### AI research agent briefing on market-moving news

An AI agent preparing a morning brief needs curated events rather than a raw headline firehose. Through Jentic the agent searches for 'list market-moving events for a symbol', loads the MoveSurge events operation with its input schema, and calls it with a symbols filter and a high min_impact threshold while the bearer key is injected at call time. It returns headlines, affected instruments, and measured reactions for the watchlist without the developer hand-wiring the client.

Example prompt: Call GET `/api/v1/events`/ with symbols=AAPL,NVDA and min_impact=high, then summarise each event's headline and market reaction

### Reconnect recovery for an event-driven trading monitor

A monitoring service that consumes the MoveSurge WebSocket stream can miss events while it is disconnected. On reconnect it calls the events list with the updated_after watermark set to the last update it processed, which returns every event created or revised since then, and pages through with the opaque cursor until has_more is false. The monitor's local state then matches the curated feed before it resumes streaming.

Example prompt: Call GET `/api/v1/events`/ with updated_after=2026-11-09T08:00:00Z, follow paging.next_after until has_more is false, and upsert each event by event_id

### Event study on measured market reactions

A quant analyst studying how markets respond to a category of news pulls historical events for a set of categories within the desk's contracted history window. Each MoveSurge event carries a market_reaction block alongside its classification, so the analyst can group reactions by impact level and category without joining a separate price dataset for the first pass.

Example prompt: Page GET `/api/v1/events`/ with categories=macro and min_impact=medium back through the history window using paging.next_before, then tabulate market_reaction by impact level

### Desk credential and quota health check

Before a scheduled job pulls events, it confirms the desk key works and reads how much history and throughput the contract allows. The MoveSurge health route returns the credential environment, granted scopes, history_days, requests_per_minute, and the maximum WebSocket connections, so the job can size its paging and fail fast on a bad key.

Example prompt: Call GET `/api/v1/health`/ and report the desk's history_days, requests_per_minute, and max_websocket_connections

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/events/` | List curated events with filters and cursors |
| GET | `/api/v1/events/{event_id}/` | Retrieve one event by public ID |
| GET | `/api/v1/health/` | Check credential and contracted-window health |
| GET | `/api/v1/schema/` | Get JSON Schema and protocol reference |
| GET | `/api/v1/openapi.json` | Get the public API specification |

## Key resources

- **Events** — Curated market-moving news events with headline, classification, instruments, analysis, and market reaction; list with filters and cursors or fetch one by event ID
- **Health** — Credential and contracted-window status, including scopes, history days, and per-minute request allowance
- **Schema reference** — JSON Schema, field reference, query parameters, error codes, and WebSocket close codes

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 55 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 52 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 39 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 54 / 100
- **View full report:** https://jentic.com/apis/movesurge.com/movesurge/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MoveSurge by hand means sending a desk key as a bearer token, handling opaque before and after cursors, and choosing between publication and update watermarks for recovery. Through Jentic you install once, import MoveSurge from the API Directory, store the desk key once, and your agent calls it.
- **Permission scoping:** MoveSurge is a read-only feed, and rules filter on method and path, so you can bound your agent to the event list and event detail operations under `/api/v1/events/.` You choose the operations it may call, so the health and schema routes are not included unless you add them.
- **Credential handling:** Your MoveSurge desk key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list market-moving events for a symbol' or 'get a news event by ID', and Jentic returns the matching MoveSurge operation with its input schema, including the symbols and min_impact filters, so the agent calls the right route directly.

## Related APIs

- **Finnhub** — Broad stock market data API with company news and quotes alongside fundamentals
- **News API** — General news headline search across many publishers
- **Polygon** — Market data API for prices, trades, and aggregates

## FAQ

### What authentication does the MoveSurge Institutional Events API use?

Per its OpenAPI spec, the MoveSurge API uses HTTP bearer authentication with a desk API key sent as Authorization: Bearer on the health, schema, and events routes. The public spec document at GET `/api/v1/openapi.json` and the integration guide at GET `/docs/api/v1`/ need no key. Through Jentic the desk key is held by your own instance and attached at call time, so the agent never handles it.

### Can I filter MoveSurge events by ticker and impact level?

Yes. GET `/api/v1/events`/ accepts a comma-separated symbols filter, a comma-separated categories filter, and a min_impact threshold with values low, medium, high, or critical, plus a limit of up to 200 per page. Results page with the opaque before and after cursors, and published_after or updated_after let a client resume from a watermark.

### What are the rate limits for the MoveSurge Institutional Events API?

The OpenAPI spec does not publish a fixed number. Limits are set per desk contract: GET `/api/v1/health`/ returns your desk's `requests_per_minute` and `max_websocket_connections`, and over-limit calls return HTTP 429. See https://movesurge.com/docs/api/v1/ for the integration guide.

### How do I pull high-impact events for a watchlist through Jentic?

Search Jentic for 'list market-moving events for a symbol', load the GET `/api/v1/events`/ operation, and execute it with symbols set to your tickers and min_impact set to high. The response carries each event's headline, instruments, analysis, and market reaction. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the MoveSurge API?

Yes. Write a rule that allows only the events list and single-event read operations, and the agent can query the curated feed and open individual events but cannot call anything else on your desk key. Each call it makes is logged so you can review what it read.

### Does the MoveSurge API return live prices?

No. MoveSurge delivers news events and a measured market reaction attached to each event, not a tick, quote, OHLC, or order-book feed. Its real-time channel is a WebSocket stream of events described in the spec's x-websocket block, separate from the REST routes.
