# Today's research for a market

URL: https://docs.fxapis.com/api-reference/marketlabs/todays-research-for-a-market

> Today's research for a market. Research, not trading advice: it places no trade.

`GET https://api.fxapis.com/v1/marketlabs/markets/{symbol}/research`

Research, not trading advice: it places no trade. Confidence is scored against the outcome after the fact.

Authentication: `Authorization: Bearer <API key>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `symbol` | path | string | yes | Instrument, such as EURUSD. |

#### Responses

- `200`
- `400`
- `401`
- `402`
- `403`
- `404`
- `409`
- `503`

Failures return `{ "error": { "code", "message" } }`; every code is listed at https://docs.fxapis.com/errors.

#### 200 response fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | yes |  |
| `data.status` | string | yes |  |
| `data.conclusion` | string | yes |  |
| `data.evidenceIds` | string[] | yes |  |
| `data.asOf` | string (date-time) | no |  |
| `data.report` | null \| object | yes | The latest report for this pair, or null when none has been published yet. |
| `data.report.id` | string | yes |  |
| `data.report.symbol` | string | yes |  |
| `data.report.ecbDate` | string | yes | Date (UTC) of the reference rate the report used. |
| `data.report.status` | string | yes |  |
| `data.report.createdAt` | null \| string (date-time) | no |  |
| `data.report.referenceRate` | null \| string | no |  |
| `data.report.views` | object[] | yes |  |
| `data.report.views[].horizon` | "1d" \| "1w" | yes |  |
| `data.report.views[].lean` | "bullish" \| "bearish" \| "neutral" \| null | yes |  |
| `data.report.views[].confidence` | "low" \| "medium" \| "high" \| null | yes |  |
| `data.report.views[].conclusion` | string | yes |  |
| `data.report.notes` | object | yes |  |
| `data.report.notes.technical` | object[] | no |  |
| `data.report.notes.technical[].text` | string | yes |  |
| `data.report.notes.technical[].evidenceIds` | string[] | yes |  |
| `data.report.notes.macro` | object[] | no |  |
| `data.report.notes.macro[].text` | string | yes |  |
| `data.report.notes.macro[].evidenceIds` | string[] | yes |  |
| `data.report.notes.news` | object[] | no |  |
| `data.report.notes.news[].text` | string | yes |  |
| `data.report.notes.news[].evidenceIds` | string[] | yes |  |
| `data.report.notes.positioning` | object[] | no |  |
| `data.report.notes.positioning[].text` | string | yes |  |
| `data.report.notes.positioning[].evidenceIds` | string[] | yes |  |
| `data.report.bull` | object[] | yes |  |
| `data.report.bull[].text` | string | yes |  |
| `data.report.bull[].evidenceIds` | string[] | yes |  |
| `data.report.bear` | object[] | yes |  |
| `data.report.bear[].text` | string | yes |  |
| `data.report.bear[].evidenceIds` | string[] | yes |  |
| `data.report.summary` | object[] | yes |  |
| `data.report.summary[].text` | string | yes |  |
| `data.report.summary[].evidenceIds` | string[] | yes |  |
| `data.report.upcomingEvents` | object[] | yes |  |
| `data.report.upcomingEvents[].eventId` | string | no |  |
| `data.report.upcomingEvents[].title` | null \| string | no |  |
| `data.report.upcomingEvents[].date` | string | no |  |
| `data.report.upcomingEvents[].bull` | null \| string | no |  |
| `data.report.upcomingEvents[].bear` | null \| string | no |  |
| `data.report.risk` | object | yes |  |
| `data.report.risk.invalidation` | object[] | no |  |
| `data.report.risk.invalidation[].text` | string | yes |  |
| `data.report.risk.invalidation[].evidenceIds` | string[] | yes |  |
| `data.report.risk.eventRisk` | object[] | no |  |
| `data.report.risk.eventRisk[].text` | string | yes |  |
| `data.report.risk.eventRisk[].evidenceIds` | string[] | yes |  |
| `data.report.risk.dataGaps` | string[] | no |  |
| `data.report.evidence` | object[] | yes |  |
| `data.report.evidence[].id` | string | no |  |
| `data.report.evidence[].group` | string | no |  |
| `data.report.evidence[].source` | string | no |  |
| `data.report.evidence[].label` | string | no |  |
| `data.report.evidence[].date` | string | no |  |
| `data.report.evidence[].value` | null \| string | no |  |
| `data.report.evidence[].title` | null \| string | no |  |
| `data.report.evidence[].derivedFrom` | string[] | no |  |
| `data.today` | "ready" \| "pending" \| "unavailable" | yes | Whether today's report is ready, still being written, or unavailable. |
| `requestId` | string | yes |  |