> For a complete page index of the Captain API documentation, fetch https://docs.filesearch.dev/llms.txt?excludeSpec=true

# Get Article

GET https://api.filesearch.dev/v2/datasets/odyssey/publications/articles/{article_id}

One article by id, entity-linked. A cache miss triggers entity enrichment on demand and caches the result. If the enrichment backend is unavailable, the article is returned with `enrichment_status="pending"` rather than failing the request.

Reference: https://docs.filesearch.dev/reference/datasets/odyssey/feed/get-article

## Request

### Path parameters

- `article_id` (string, required) — Public article id from a feed item

## Response

### 200

Successful Response

- `id` (string, required)
- `article_id` (string, required)
- `title` (string, required)
- `publication` (string, required)
- `url` (string, required)
- `published_at` (string, required)
- `subhead` (string, optional, nullable)
- `author` (string, optional, nullable)
- `topics` (list of string, optional, nullable)
- `has_entities` (boolean, optional)
- `body_source` (string, optional)
- `enriched` (boolean, optional)
- `detail_url` (string, optional)
- `companies_mentioned` (list of OdysseyArticleCompanyMention, optional)
- `article_type` (string, optional)
- `sector` (string, optional, nullable)

## Types

### OdysseyArticleCompanyMention

- `name` (string, required)
- `domain` (string, required)
- `entity_id` (string, required)
- `role` (string, required)
- `confidence` (double, required)
- `resolution` (string, required) — How the entity was resolved, e.g. exact_domain
- `industry` (string, optional, nullable)
- `location` (string, optional, nullable)
- `employee_count` (integer, optional, nullable)
- `total_funding_raised` (integer, optional, nullable)

## Examples

**Response**

```json
{
  "id": "art_WyJBUlQjMjAyNi0wNy0wMyIsIjIwMjYtMDctMDNUMjE6MjY6NDkuOTM5Mzg3WiMzYjRlNzZiZDQzOGZjMzY0Il0",
  "article_id": "art_3b4e76bd438fc364377055e8ddfff48c",
  "title": "FDA device 510k: Dynamis Robotic Surgical System (LEM Surgical AG)",
  "publication": "openFDA",
  "url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K260369",
  "published_at": "2026-07-03T21:26:49.939387Z",
  "subhead": null,
  "author": null,
  "topics": [
    "Robotic Surgery",
    "Orthopedic Devices",
    "FDA 510(k)",
    "Medical Technology"
  ],
  "has_entities": true,
  "body_source": "scrape",
  "enriched": true,
  "detail_url": "/v2/datasets/odyssey/publications/articles/art_WyJBUlQjMjAyNi0wNy0wMyIsIjIwMjYtMDctMDNUMjE6MjY6NDkuOTM5Mzg3WiMzYjRlNzZiZDQzOGZjMzY0Il0",
  "companies_mentioned": [
    {
      "name": "LEM Surgical AG",
      "domain": "lemsurgical.com",
      "entity_id": "ody_23qp2o7g62ehc3dmsclshgk2hpvzvbq4sc3imwyc6tadbikxldqtlak3gshfa5nwnvynlyua",
      "role": "primary_subject",
      "confidence": 0.99,
      "resolution": "resolved",
      "industry": "medical devices",
      "location": "bern, bern, switzerland",
      "employee_count": 48,
      "total_funding_raised": 35237244
    },
    {
      "name": "AlvaMed, Inc.",
      "domain": "alvamed.com",
      "entity_id": "ody_2j3x7m7bxbib7mggwv6hayprfmni5hgxouetdpva",
      "role": "mentioned",
      "confidence": 0.85,
      "resolution": "resolved",
      "industry": "Medical Device",
      "location": null,
      "employee_count": 17,
      "total_funding_raised": null
    }
  ],
  "article_type": "announcement",
  "sector": "Healthcare"
}
```

**SDK Code**

```python Python REST
import requests

BASE_URL = "https://api.filesearch.dev"
API_KEY = "your_api_key"

headers = {"Authorization": f"Bearer {API_KEY}"}

response = requests.get(
    f"{BASE_URL}/v2/datasets/odyssey/publications/articles/art_3b4e76bd438fc364377055e8ddfff48c",
    headers=headers,
    timeout=60.0
)
print(response.json())
```

```typescript TypeScript REST
const BASE_URL = "https://api.filesearch.dev";
const API_KEY = "your_api_key";

const response = await fetch(`${BASE_URL}/v2/datasets/odyssey/publications/articles/art_3b4e76bd438fc364377055e8ddfff48c`, {
    method: "GET",
    headers: { "Authorization": `Bearer ${API_KEY}` }
});
console.log(await response.json());
```