Skip to content

Resource ArticleResource

CrucifiedPain edited this page Jun 26, 2026 · 10 revisions

ArticleResource (client.article)

Endpoints: • article.getArticleById • article.getArticleLiteById • article.getArticlesPaginated (cursor-paginated)

.collect_all()

Fetch all items across all pages concurrently using parallel time-slicing.

Signature

await client.article.collect_all(**kwargs: 'typing.Any') -> 'list[ArticleLite]'

Parameters

Name Type Default
kwargs Any *Required*

Return Models

ArticleLite

Field Type Required Description
_id string \| null
__v integer \| null
title string \| null
authorId string \| null
countryId string \| null
type string \| null
category string \| null
language string \| null
score integer \| null
views integer \| null
image string \| null
createdAt string \| null
author string \| null
content string \| null
isDeleted boolean \| null
isPublished boolean \| null
isPublic boolean \| null
slug string \| null
publishedAt string \| null
stats ArticleStats \| null
updatedAt string \| null

ArticleStats

Field Type Required Description
_id string \| null
__v integer \| null
comments integer \| null
dislikes integer \| null
gemTips integer \| null
likes integer \| null
score integer \| null
subs integer \| null
tips integer \| null
views integer \| null

.get()

Get a full article by ID (includes content body).

Signature

await client.article.get(article_id: 'str') -> 'Article'

Parameters

Name Type Default
article_id str *Required*

Return Models

Article

Field Type Required Description
_id string \| null
__v integer \| null
title string \| null
content string \| null
authorId string \| null
countryId string \| null
type string \| null
category string \| null
language string \| null
score integer \| null
views integer \| null
comments integer \| null
image string \| null
createdAt string \| null
author string \| null
isDeleted boolean \| null
isPublished boolean \| null
isPublic boolean \| null
slug string \| null
publishedAt string \| null
stats ArticleStats \| null
updatedAt string \| null

ArticleStats

Field Type Required Description
_id string \| null
__v integer \| null
comments integer \| null
dislikes integer \| null
gemTips integer \| null
likes integer \| null
score integer \| null
subs integer \| null
tips integer \| null
views integer \| null

.get_lite()

Get a lightweight article by ID (metadata only, no content body).

Signature

await client.article.get_lite(article_id: 'str') -> 'ArticleLite'

Parameters

Name Type Default
article_id str *Required*

Return Models

ArticleLite

Field Type Required Description
_id string \| null
__v integer \| null
title string \| null
authorId string \| null
countryId string \| null
type string \| null
category string \| null
language string \| null
score integer \| null
views integer \| null
image string \| null
createdAt string \| null
author string \| null
content string \| null
isDeleted boolean \| null
isPublished boolean \| null
isPublic boolean \| null
slug string \| null
publishedAt string \| null
stats ArticleStats \| null
updatedAt string \| null

ArticleStats

Field Type Required Description
_id string \| null
__v integer \| null
comments integer \| null
dislikes integer \| null
gemTips integer \| null
likes integer \| null
score integer \| null
subs integer \| null
tips integer \| null
views integer \| null

.get_paginated()

Get articles (cursor-paginated).

Args: type: Article feed type (daily, weekly, top, my, subscriptions, last). user_id: Filter to articles by a specific author. categories: Filter by category list. languages: Filter by language codes (e.g. ["en", "ro"]). positive_score_only: When True, exclude downvoted articles. auto_items: If True, returns an AsyncIterator of individual items. max_pages: Maximum number of pages to fetch when auto-paginating. cursor_end: Date string. Auto-pagination stops when cursor date is older than this.

Signature

await client.article.get_paginated(type: 'ArticleType | str', *, limit: 'int' = 10, cursor: 'str | None' = None, user_id: 'str | None' = None, categories: 'list[str] | None' = None, languages: 'list[str] | None' = None, positive_score_only: 'bool | None' = None, auto_items: 'bool' = False, max_pages: 'int | float' = inf, cursor_end: 'str | None' = None) -> 'CursorPage[ArticleLite] | AsyncIterator[ArticleLite]'

Parameters

Name Type Default
type ArticleType | str *Required*
limit int 10
cursor str | None None
user_id str | None None
categories list[str] | None None
languages list[str] | None None
positive_score_only bool | None None
auto_items bool False
max_pages int | float inf
cursor_end str | None None

Return Models

ArticleLite

Field Type Required Description
_id string \| null
__v integer \| null
title string \| null
authorId string \| null
countryId string \| null
type string \| null
category string \| null
language string \| null
score integer \| null
views integer \| null
image string \| null
createdAt string \| null
author string \| null
content string \| null
isDeleted boolean \| null
isPublished boolean \| null
isPublic boolean \| null
slug string \| null
publishedAt string \| null
stats ArticleStats \| null
updatedAt string \| null

ArticleStats

Field Type Required Description
_id string \| null
__v integer \| null
comments integer \| null
dislikes integer \| null
gemTips integer \| null
likes integer \| null
score integer \| null
subs integer \| null
tips integer \| null
views integer \| null

CursorPage[ArticleLite]

Field Type Required Description
_id string \| null
__v integer \| null
items array[ArticleLite]
nextCursor string \| null
hasMore boolean

.invalidate_cache()

Clear the SWR cache for all resources.

Signature

await client.article.invalidate_cache() -> 'None'

Clone this wiki locally