🚀 Heads up: Our API Docs Have Moved!
We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
      We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
Announcement External Feeds API
External feeds represent RSS feeds that can be attached to a Course or Group, in order to automatically create announcements for each new item in the feed.
An ExternalFeed object looks like:
{
  // The ID of the feed
  "id": 5,
  // The title of the feed, pulled from the feed itself. If the feed hasn't yet
  // been pulled, a temporary name will be synthesized based on the URL
  "display_name": "My Blog",
  // The HTTP/HTTPS URL to the feed
  "url": "http://example.com/myblog.rss",
  // If not null, only feed entries whose title contains this string will trigger
  // new posts in Canvas
  "header_match": "pattern",
  // When this external feed was added to Canvas
  "created_at": "2012-06-01T00:00:00-06:00",
  // The verbosity setting determines how much of the feed's content is imported
  // into Canvas as part of the posting. 'link_only' means that only the title and
  // a link to the item. 'truncate' means that a summary of the first portion of
  // the item body will be used. 'full' means that the full item body will be
  // used.
  "verbosity": "truncate"
}List external feeds ExternalFeedsController#index
GET /api/v1/courses/:course_id/external_feeds
    Scope: 
    
  
  url:GET|/api/v1/courses/:course_id/external_feeds
  GET /api/v1/groups/:group_id/external_feeds
    Scope: 
    
url:GET|/api/v1/groups/:group_id/external_feeds
  Returns the paginated list of External Feeds this course or group.
Example Request:
curl https://<canvas>/api/v1/courses/<course_id>/external_feeds \
     -H 'Authorization: Bearer <token>'Create an external feed ExternalFeedsController#create
POST /api/v1/courses/:course_id/external_feeds
    Scope: 
    
  
  url:POST|/api/v1/courses/:course_id/external_feeds
  POST /api/v1/groups/:group_id/external_feeds
    Scope: 
    
url:POST|/api/v1/groups/:group_id/external_feeds
  Create a new external feed for the course or group.
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| url | Required | string | The url to the external rss or atom feed | 
| header_match | boolean | If given, only feed entries that contain this string in their title will be imported | |
| verbosity | string | Defaults to “full” 
          Allowed values:  | 
Example Request:
curl https://<canvas>/api/v1/courses/<course_id>/external_feeds \
    -F url='http://example.com/rss.xml' \
    -F header_match='news flash!' \
    -F verbosity='full' \
    -H 'Authorization: Bearer <token>'Delete an external feed ExternalFeedsController#destroy
DELETE /api/v1/courses/:course_id/external_feeds/:external_feed_id
    Scope: 
    
  
  url:DELETE|/api/v1/courses/:course_id/external_feeds/:external_feed_id
  DELETE /api/v1/groups/:group_id/external_feeds/:external_feed_id
    Scope: 
    
url:DELETE|/api/v1/groups/:group_id/external_feeds/:external_feed_id
  Deletes the external feed.
Example Request:
curl -X DELETE https://<canvas>/api/v1/courses/<course_id>/external_feeds/<feed_id> \
     -H 'Authorization: Bearer <token>'