---
title: "Market Signal"
method: POST
path: "/v0/signal/market"
tags: ["V0", "Signal", "HAS_MCP_EQUIVALENT"]
---

# Market Signal

`POST /v0/signal/market`

## Request

- Base URL: `https://api.ultralayer.ai`
- URL: `https://api.ultralayer.ai/v0/signal/market`
- Auth: HTTP bearer

Per-bar wire attention (count) and net-sum entity sentiment (sum, std) for one sector, country, or asset class. Max 60d history.

## Request body

- MarketSignalParams
  - `start_timestamp` string, date-time, nullable: System timestamp; Inclusive ISO 8601; omitted=last 14 bars; max 60d
  - `end_timestamp` string, date-time, nullable: System timestamp; Inclusive ISO 8601; null=realtime
  - `resolution` string: Bucket length in UTC days; 1d-30d.
  - `value` string, required: One sector, country (ISO 3166-1 alpha-2, lowercase), or asset class.
  - `novelty` string[]: Match any.

## Response `200`

Successful Response

- MarketSignalResponse: Contiguous market bar series.
  - `signal` string, required: Signal family.
  - `methodology_version` integer, required: Bumped when the signal definition changes.
  - `resolution` string, required: Bucket length used.
  - `bars` MarketBar[], required: Oldest first; empty buckets included.
    - `bar` string, date-time, required: Exclusive bucket end.
    - `count` integer, required: Wire items about the scope value.
    - `sentiment` number, required: Net sum of entity mention sentiments (-1..1 each); 0 when empty or no mentions.
    - `sentiment_std` number, nullable, required: Dispersion (population std) of those mention sentiments; null when no mentions.
    - `partial` boolean: True on the in-progress bucket.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ultralayer/apis/ultralayer-api.md) · [All operations](https://skmtc.dev/ultralayer/apis/ultralayer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ultralayer/apis/ultralayer-api/revisions/4185459222be?raw)
