# One research report, in full

URL: https://docs.fxapis.com/api-reference/marketlabs/one-research-report-in-full

> One research report, in full.

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

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

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | A report id, rr_ followed by 16 hex characters. |

#### 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.id` | string | yes |  |
| `data.symbol` | string | yes |  |
| `data.ecbDate` | string | yes | Date (UTC) of the reference rate the report used. |
| `data.status` | string | yes |  |
| `data.createdAt` | null \| string (date-time) | no |  |
| `data.referenceRate` | null \| string | no |  |
| `data.views` | object[] | yes |  |
| `data.views[].horizon` | "1d" \| "1w" | yes |  |
| `data.views[].lean` | "bullish" \| "bearish" \| "neutral" \| null | yes |  |
| `data.views[].confidence` | "low" \| "medium" \| "high" \| null | yes |  |
| `data.views[].conclusion` | string | yes |  |
| `data.notes` | object | yes |  |
| `data.notes.technical` | object[] | no |  |
| `data.notes.technical[].text` | string | yes |  |
| `data.notes.technical[].evidenceIds` | string[] | yes |  |
| `data.notes.macro` | object[] | no |  |
| `data.notes.macro[].text` | string | yes |  |
| `data.notes.macro[].evidenceIds` | string[] | yes |  |
| `data.notes.news` | object[] | no |  |
| `data.notes.news[].text` | string | yes |  |
| `data.notes.news[].evidenceIds` | string[] | yes |  |
| `data.notes.positioning` | object[] | no |  |
| `data.notes.positioning[].text` | string | yes |  |
| `data.notes.positioning[].evidenceIds` | string[] | yes |  |
| `data.bull` | object[] | yes |  |
| `data.bull[].text` | string | yes |  |
| `data.bull[].evidenceIds` | string[] | yes |  |
| `data.bear` | object[] | yes |  |
| `data.bear[].text` | string | yes |  |
| `data.bear[].evidenceIds` | string[] | yes |  |
| `data.summary` | object[] | yes |  |
| `data.summary[].text` | string | yes |  |
| `data.summary[].evidenceIds` | string[] | yes |  |
| `data.upcomingEvents` | object[] | yes |  |
| `data.upcomingEvents[].eventId` | string | no |  |
| `data.upcomingEvents[].title` | null \| string | no |  |
| `data.upcomingEvents[].date` | string | no |  |
| `data.upcomingEvents[].bull` | null \| string | no |  |
| `data.upcomingEvents[].bear` | null \| string | no |  |
| `data.risk` | object | yes |  |
| `data.risk.invalidation` | object[] | no |  |
| `data.risk.invalidation[].text` | string | yes |  |
| `data.risk.invalidation[].evidenceIds` | string[] | yes |  |
| `data.risk.eventRisk` | object[] | no |  |
| `data.risk.eventRisk[].text` | string | yes |  |
| `data.risk.eventRisk[].evidenceIds` | string[] | yes |  |
| `data.risk.dataGaps` | string[] | no |  |
| `data.evidence` | object[] | yes |  |
| `data.evidence[].id` | string | no |  |
| `data.evidence[].group` | string | no |  |
| `data.evidence[].source` | string | no |  |
| `data.evidence[].label` | string | no |  |
| `data.evidence[].date` | string | no |  |
| `data.evidence[].value` | null \| string | no |  |
| `data.evidence[].title` | null \| string | no |  |
| `data.evidence[].derivedFrom` | string[] | no |  |
| `requestId` | string | yes |  |