> For the complete documentation index, see [llms.txt](https://docs.openrank.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openrank.com/integrations/lens-protocol/lens-content-apis.md).

# Lens Content APIs

Posts by profiles are scored (value between 0 and 1), classified (recommendable, maybe recommendable, not recommendable) and ranked every hour. The posts can then be retrieved by clients through any of the following 4 APIs.&#x20;

As an example, the `/feed` endpoint returns a JSON array of posts using the Popular algorithm as a default algorithm. To choose a different algorithm, specify the algorithm as a path parameter.&#x20;

Let's walk through all the **Global** and **Personalized** content feed recommendation APIs next.

## Global Feed

As for generalized (non-personalized) feed of posts according to each algorithm, we now have the following pre-computed algorithms.  These algorithms are:

* `/feed/recent` to choose the Recent algorithm.&#x20;
* `/feed/popular` to explicitly choose the Popular algorithm.
* `/feed/recommended` to choose the Recommended algorithm.
* `/feed/crowdsourced` to choose the Crowdsourced algorithm.

In addition to the algorithm path parameter, the endpoint also takes an optional `limit` query parameter. All the algorithms return a **max of 100 posts**. To get a smaller set of posts, specify the limit parameter. Example: `/feed/recent?limit=10`

## Personalized Feed

Personalized content feed algorithms are meant to generate lists of posts that are most relevant to each user. These algorithms crawl a user's social graph and activity when recommending posts.  There's a time decay element in this as well. &#x20;

These algorithm deployed is:

* `/feed/personal/{profile}/following` which uses the Following strategy

In addition to the algorithm path parameter, the endpoint also takes an optional `limit` query parameter. All the algorithms return a **max of 100 posts**. To get a smaller set of posts, specify the limit parameter. Example: `/feed/personal/karma3labs.lens/following?limit=10`

## API Documentation

{% hint style="info" %}
Tryout the APIs here! — [https://openapi.lens.k3l.io](https://openapi.lens.k3l.io/#/default/getScores)
{% endhint %}

{% openapi src="<https://raw.githubusercontent.com/Karma3Labs/ts-lens/main/server/openapi/openapi.yaml>" path="/feed/personal/{profile}/{strategy}" method="get" expanded="false" %}
<https://raw.githubusercontent.com/Karma3Labs/ts-lens/main/server/openapi/openapi.yaml>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/Karma3Labs/ts-lens/main/server/openapi/openapi.yaml>" path="/feed/{strategy}" method="get" expanded="false" %}
<https://raw.githubusercontent.com/Karma3Labs/ts-lens/main/server/openapi/openapi.yaml>
{% endopenapi %}

You can try out this API at this **OpenAPI interface** — [https://openapi.lens.k3l.io](https://openapi.lens.k3l.io/#/default/getPersonalFeed)
