GET /api/articles/:id
Public access · HTTP API reference
All endpoints · Authentication and retries · Download OpenAPI
Request
| Parameter | Location | Type and requirement |
|---|---|---|
id | path | string · required |
No request body.
Example
Examples use fictional data. Replace identifiers with resources you can access. For account requests, cookies.txt must contain your own session; set CSRF_TOKEN to the matching CSRF cookie value where required.
curl --include \
--request GET \
'https://api.weavers.app/api/articles/1'Responses
200 · Successful response.
application/json
{
"article": {
"id": "1",
"symbol": "AAPL",
"strategy": null,
"title": "Example research",
"summary": "example",
"url": "example",
"sourceName": "Example research",
"publishedAt": "2025-01-01T00:00:00.000Z",
"readingTime": "example",
"coverImage": "example",
"tags": [],
"reactions": 1,
"kind": "signal",
"outboxId": 1,
"channelId": 1,
"timeframe": "example",
"windowSize": 1,
"direction": null,
"bodyKey": null,
"bodyFormat": "example",
"body": "example",
"updatedAt": "2025-01-01T00:00:00.000Z",
"accessTier": "free",
"isUnlocked": false,
"unlockCost": null,
"lockedReason": null
}
}View response model
article required · objectView article model
id required · stringsymbol required · stringstrategy required · null | objectView strategy model
Variant 1: null
null
Variant 2: object
strategyRegistryId required · null | numberView strategyRegistryId model
Variant 1: null
null
Variant 2: number
number
strategyKey required · stringstrategyVariant required · stringstrategyId required · null | stringView strategyId model
Variant 1: null
null
Variant 2: string
string
alias required · null | stringView alias model
Variant 1: null
null
Variant 2: string
string
displayName required · null | stringView displayName model
Variant 1: null
null
Variant 2: string
string
Additional fields: JSON values.
title required · stringsummary required · stringurl required · stringsourceName required · stringpublishedAt required · stringreadingTime required · stringcoverImage required · stringtags required · array of stringView tags model
Array items:
string
reactions required · numberkind required · "signal" | "report"outboxId required · numberchannelId required · numbertimeframe required · stringwindowSize required · numberdirection required · null | stringView direction model
Variant 1: null
null
Variant 2: string
string
bodyKey required · null | stringView bodyKey model
Variant 1: null
null
Variant 2: string
string
bodyFormat required · stringbody required · stringupdatedAt required · stringaccessTier required · "free" | "premium"isUnlocked required · booleanunlockCost required · null | numberView unlockCost model
Variant 1: null
null
Variant 2: number
number
lockedReason required · null | "auth_required" | "entitlement_required"View lockedReason model
Variant 1: null
null
Variant 2: "auth_required"
"auth_required"
Variant 3: "entitlement_required"
"entitlement_required"
Additional fields: JSON values.
Additional fields: JSON values.
304 · Cached representation is still current; no body.
No JSON response body. Check the status and headers.
400 · Invalid request.
application/json
{
"error": "example"
}View response model
error required · stringAdditional fields: JSON values.
401 · Authentication is missing or invalid.
application/json
{
"isUnlocked": false,
"unlockCost": null,
"lockedReason": null,
"error": "example",
"accessTier": "premium"
}View response model
Variant 1: object
isUnlocked required · booleanunlockCost required · null | numberView unlockCost model
Variant 1: null
null
Variant 2: number
number
lockedReason required · null | "auth_required" | "entitlement_required"View lockedReason model
Variant 1: null
null
Variant 2: "auth_required"
"auth_required"
Variant 3: "entitlement_required"
"entitlement_required"
error required · stringaccessTier required · "premium"Additional fields: JSON values.
Variant 2: object
error required · stringAdditional fields: JSON values.
402 · Credits or entitlement required.
application/json
{
"isUnlocked": false,
"unlockCost": null,
"lockedReason": null,
"error": "example",
"entitlementKey": "premium_article_card",
"price": 15,
"accessTier": "premium"
}View response model
Variant 1: object
isUnlocked required · booleanunlockCost required · null | numberView unlockCost model
Variant 1: null
null
Variant 2: number
number
lockedReason required · null | "auth_required" | "entitlement_required"View lockedReason model
Variant 1: null
null
Variant 2: "auth_required"
"auth_required"
Variant 3: "entitlement_required"
"entitlement_required"
error required · stringentitlementKey required · "premium_article_card"price required · 15accessTier required · "premium"Additional fields: JSON values.
Variant 2: object
error required · stringentitlementKey required · "premium_article_card"price required · 15Additional fields: JSON values.
404 · Resource or enabled capability not found.
application/json
{
"error": "example"
}View response model
error required · stringAdditional fields: JSON values.
429 · Rate limit reached; honor Retry-After when supplied.
application/json
{}View response model
Error envelopes can include resource-specific details. Check the status before reading these fields.
error optional · stringcode optional · stringmessage optional · stringAdditional fields: JSON values.
500 · Server failure.
application/json
{
"error": "example"
}View response model
Variant 1: object
error required · stringAdditional fields: JSON values.