Introducing the Feedly Teams API

You can now access the content of Feedly AI Feeds and Boards via an API—to automate workflows and disseminate information more efficiently!

Aug 16, 2024 - 13:11
 0  7
Introducing the Feedly Teams API
Fundamentals

Introducing the Feedly Teams API

Automate workflows and disseminate information more efficiently!

At Feedly, our focus is to help teams keep up with important industry trends while gaining a deeper understanding of their competitors and customers.

You can now access the content of Feedly AI Feeds and Boards via an API—to automate workflows and disseminate information more efficiently!

In this document, we will show you how to:

  • Access the list of articles associated with an AI Feed or a Board
  • Download the content of an article
  • Search for specific articles in your AI Feeds and Boards
  • Save an article to a board, or add a note to it.

The Feedly API is using a HTTP REST + JSON format and is easily accessible via any programming language. It is protected by an OAuth2 security mechanism. You will need a developer token associated with your Feedly Teams account to access teams content. (Read more: how to get a developer token)

Listing Articles in a Feed or Board

All lists of articles (at the individual source, Feed, or Board level) are exposed as a stream of items (Item is an RSS term for an article).

To get the list of articles associated with a Team Feed or a Team Board, you need to identify the unique id of that AI Feed or that Board. When you open an AI Feed or a Board in the Feedly web application, the id appears in the browser URL bar.

For AI Feeds, the URL in the browser will look like this: https://feedly.com/i/collection/content/enterprise/acme/category/45c32255-1234-4c06-2321-1991de3c2bb2

The id is the part of the URL starting with enterprise:

enterprise/acme/category/45c32255-1234-4c06-2321-1991de3c2bb2

For Boards, the URL in the browser will look like this:

https://feedly.com/i/board/content/enterprise/acme/tag/45c32255-1234-4c06-2321-1991de3c2ddd

Again, the id you are interested in is the part starting with enterprise:

enterprise/acme/tag/45c32255-1234-4c06-2321-1991de3c2ddd

Once you have the id of the AI Feed or Board you would like to access, you can use /v3/streams endpoint to fetch the list of articles associated with the feed or board.

GET /v3/streams/:replace_with_id/contents

Given that the content of AI Feeds and Boards is private to a team, this request needs to be authenticated. You will need to get a developer token and pass that token in the header or URL of the request.

You can use the count, unreadOnly, ranked, and newerThan input parameters to tailor this request to your specific needs.

You can request up to 100 articles at a time using the count parameter. If you need more articles, you will need to learn how to use the continuation parameter to paginate through articles in batches of 100.

Anatomy of an Article (aka Item)

The result of a v3/stream call is a list of items representing the articles belonging to the feed or board you are trying to access.

{ "alternate": [ { "type": "text/html", "href": "http://www.theverge.com/" } ], "direction": "ltr", "updated": 1367539068016, "items": [ { "engagement": 15, "author": "Nathan Ingraham", "alternate": [ { "type": "text/html", "href": "http://www.theverge.com/2013/4/17/4236096/nbc-heroes-may-get-a-second-lease-on-life-on-xbox-live" } ], "tags": [ { "label": "inspiration", "id": "user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/tag/inspiration" } ], "origin": { "streamId": "feed/http://www.theverge.com/rss/full.xml", "htmlUrl": "http://www.theverge.com/", "title": "The Verge - All Posts" }, "unread": true, "updated": 1367539068016, "published": 1367539068016, "crawled": 1367539068016, "title": "NBC's reviled sci-fi drama 'Heroes' may get a second lease on life as Xbox Live exclusive", "categories": [ { "label": "tech", "id": "enterprise/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/tech" } ], "content": { "direction": "ltr", "content": "..." }, "id": "A=_13fb9d6f274:2ac9c5:f5718180" }, { "engagement": 39, "author": "T.C. Sottek", "alternate": [ { "type": "text/html", "href": "http://www.theverge.com/2013/4/17/4236136/senate-rejects-gun-control-amendment" } ], "tags": [ { "label": "inspiration", "id": "enterprise/c805fcbf-3acf-4302-a97e-d82f9d7c897f/tag/competition" } ], "origin": { "streamId": "feed/http://www.theverge.com/rss/full.xml", "htmlUrl": "http://www.theverge.com/", "title": "The Verge - All Posts" }, "unread": true, "updated": 1367539068016, "published": 1367539068016, "crawled": 1367539068016, "title": "Senate rejects bipartisan gun control measure for background checks", "categories": [ { "label": "tech", "id": "enterprise/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/tech" } ], "content": { "direction": "ltr", "content": "...html content..." }, "id": "gRtwnDeqCDpZ3fb9d6f274:2ac9c5:f5718182" } ], "title": "The Verge - All Posts", "id": "feed/http => //www.theverge.com/rss/full.xml", "continuation": "gRtwnDeqbXn2XpDA=_13fb9d6f274:2ac9c5:f5718180" }

An item is a rich JSON structure representing all the different facets of an article.

The content property will let you download the content of the article.

The categories array will let you know which feeds this article belongs to.

The tags array will let you know which boards this article has been saved to.

If the article includes notes or highlights, you will find them in the annotations array.

The item also includes metadata about the article: publish / update date, origin, author, engagement, etc. Any information you see in the Feedly UI regarding articles is also included in the item representation of the API.

Search for an Article

The API also allows you to search inside the Feedly Team account to find specific articles by keyword, content type, etc.

GET /v3/search/contents?streamId=:replace_with_id&query=:searchTerm

The v3/search/contents endpoint allows you to search for a term in a specific AI Feed, Board, source or your entire Feedly. You control the scope of the search via the streamId parameter. This is the same id we used above to list the content of a specific feed or board.

There are 2 global ids which would be useful if you want to search across all your feeds or all your boards:

enterprise/acme/category/global.all is the global stream id which allows you to search across all of your team feeds (replace acme with your team id).

enterprise/acme/tag/global.all is the global stream id which allows you to search across all of your team boards (replace acme with your team id).

This search request can be tailored using query, count, newerThan, fields, embedded, engagement, and locale.

It will return a list of items, each item representing an article matching the search request.

Pro Tip: You can also set the scope of the search to be an individual source. Each source has an id that combines feed/ and the URL of the RSS: feed/http://daringfireball.net/index.xml

feed/http://daringfireball.net/index.xml

You can also set the scope of the search to be an individual source. Each source has an id that combines

feed/

and the URL of the RSS:

feed/http://daringfireball.net/index.xml

Searching for Sources?

Feedly also offers an API that allows you to search for new sources

GET /v3/search/feeds

The v3/search/feeds endpoint allows you to look up the individual sources you could follow in your Feedly. You can pass in the title or the URL of a site you want to follow or a #topic (with a hash prefix), and Feedly will return a list of recommendations.

{ "website": "http://daringfireball.net/", "velocity": 47.8, "title": "Daring Fireball", "feedId": "feed/http://daringfireball.net/index.xml", "subscribers": 359471 },

The result lists information about each recommendation: the website URL, the velocity (number of articles published per week), the title, the source id and the number of subscribers.

Saving an Article to a Board

Each article has a unique id. This id is included in the item representing that article. If you want to save an article to a board, you will need to determine the id of the item and the id of the board and use the v3/tags entry point:

PUT /v3/tags/:replace_with_id_of_board

Passing in as input in the body, the id of the article

{ "entryId": "gRtwnDeqCDpZ42bXE9Sp7dNhm4R6NsipqFVbXn2XpDA=_13fb9d6f274:2ac9c5:f5718180" }

Pro Tip:v3/tags also support a DELETE operation that allows you to unsave an article from a board.

Learn More

You can learn more about the Feedly API on our developer website. We look forward to seeing how teams will use the Feedly API to streamline workflows and do more with their content.Visit Developer Website

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow