Savee Developers

Saves

GET
/v1/saves

Newest first. Includes the caller's private saves, with one exception: if the caller has enabled Hide private board saves from profile feed in their Savee settings, saves that belong to a private board are left out here too. The user field on each save is omitted because the caller is implicitly the owner.

Authorization

headerAuthorizationBearer <token>

Personal access token (sv_live_…) — represents you and carries every scope, so no scope is required for this call. Best for your own scripts and internal tools. Generate one at https://savee.com/developers/.

Query Parameters

limit?integer

Page size (default 30, max 100).

Range1 <= value <= 100
cursor?string

Opaque cursor returned in next_cursor from the previous page. Pass it through verbatim — the encoding is an implementation detail and may change.

Response Body

A page of saves.

application/json
  1. response
data*array<>
next_cursor*|

Pass as cursor to fetch the next page. null on the last page.

has_more*boolean

Whether another page is available. Keep paging while this is true.

curl -X GET 'https://api.savee.com/v1/saves'
{  "data": [    {      "id": "string",      "short_id": "string",      "url": "http://example.com",      "name": "string",      "source_url": "string",      "created_at": "2019-08-24T14:15:22Z",      "is_private": true,      "total_saves": 0,      "media": {        "type": "image",        "width": 0,        "height": 0,        "thumbnail": "http://example.com",        "original": "http://example.com"      },      "detected_aesthetics": "string",      "colors": [        {          "color": "string",          "amount": 0        }      ],      "user": {        "id": "string",        "username": "string",        "name": "string",        "url": "http://example.com",        "avatar_url": "http://example.com"      }    }  ],  "next_cursor": "string",  "has_more": true}

Get a single save

GET
/v1/saves/{saveID}

Look up one save by either of its identifiers.

saveID accepts the id returned by any listing endpoint (67aada20d242ec0009400825) or the save's short_id — the segment in its savee.com URL. So a link like https://savee.com/i/997d6DW/ becomes GET /v1/saves/997d6DW directly, with no lookup step in between. The two forms can't be confused: an id is 24 hex characters, a short_id is 7.

Visible to the caller are their own saves (including private ones) and any public save on Savee. A save that exists but isn't visible returns 404 rather than 403 — the API does not confirm whether someone else's private save exists. Unlike /v1/saves, the response always includes the user who created the save, since it may not be the caller.

Authorization

headerAuthorizationBearer <token>

Personal access token (sv_live_…) — represents you and carries every scope, so no scope is required for this call. Best for your own scripts and internal tools. Generate one at https://savee.com/developers/.

Path Parameters

saveID*string

The save id, or its short_id from a savee.com /i/…/ URL.

Response Body

The save.

application/json
  1. response
data*
curl -X GET 'https://api.savee.com/v1/saves/string'
{  "data": {    "id": "string",    "short_id": "string",    "url": "http://example.com",    "name": "string",    "source_url": "string",    "created_at": "2019-08-24T14:15:22Z",    "is_private": true,    "total_saves": 0,    "media": {      "type": "image",      "width": 0,      "height": 0,      "thumbnail": "http://example.com",      "original": "http://example.com"    },    "detected_aesthetics": "string",    "colors": [      {        "color": "string",        "amount": 0      }    ],    "user": {      "id": "string",      "username": "string",      "name": "string",      "url": "http://example.com",      "avatar_url": "http://example.com"    }  }}
GET
/v1/feed

Saves from users this user follows (and platform-curated content), newest first. Each save includes a user object describing the saver.

Authorization

headerAuthorizationBearer <token>

Personal access token (sv_live_…) — represents you and carries every scope, so no scope is required for this call. Best for your own scripts and internal tools. Generate one at https://savee.com/developers/.

Query Parameters

limit?integer

Page size (default 30, max 100).

Range1 <= value <= 100
cursor?string

Opaque cursor returned in next_cursor from the previous page. Pass it through verbatim — the encoding is an implementation detail and may change.

Response Body

A page of feed saves.

application/json
  1. response
data*array<>
next_cursor*|

Pass as cursor to fetch the next page. null on the last page.

has_more*boolean

Whether another page is available. Keep paging while this is true.

curl -X GET 'https://api.savee.com/v1/feed'
{  "data": [    {      "id": "string",      "short_id": "string",      "url": "http://example.com",      "name": "string",      "source_url": "string",      "created_at": "2019-08-24T14:15:22Z",      "is_private": true,      "total_saves": 0,      "media": {        "type": "image",        "width": 0,        "height": 0,        "thumbnail": "http://example.com",        "original": "http://example.com"      },      "detected_aesthetics": "string",      "colors": [        {          "color": "string",          "amount": 0        }      ],      "user": {        "id": "string",        "username": "string",        "name": "string",        "url": "http://example.com",        "avatar_url": "http://example.com"      }    }  ],  "next_cursor": "string",  "has_more": true}
GET
/v1/boards/{boardID}/saves

boardID is either the board id or the short_id returned by /v1/boards; both are accepted. Accessible by any user with a role on the board (owner, admin, editor, viewer) and by team members for team-owned boards. Returns 404 when the board does not exist or the caller has no role on it — the API does not confirm whether someone else’s board exists.

Authorization

headerAuthorizationBearer <token>

Personal access token (sv_live_…) — represents you and carries every scope, so no scope is required for this call. Best for your own scripts and internal tools. Generate one at https://savee.com/developers/.

Path Parameters

boardID*string

The board id, or its short_id — both are returned by /v1/boards.

Query Parameters

limit?integer

Page size (default 30, max 100).

Range1 <= value <= 100
cursor?string

Opaque cursor returned in next_cursor from the previous page. Pass it through verbatim — the encoding is an implementation detail and may change.

Response Body

A page of saves on the board.

application/json
  1. response
data*array<>
next_cursor*|

Pass as cursor to fetch the next page. null on the last page.

has_more*boolean

Whether another page is available. Keep paging while this is true.

curl -X GET 'https://api.savee.com/v1/boards/string/saves'
{  "data": [    {      "id": "string",      "short_id": "string",      "url": "http://example.com",      "name": "string",      "source_url": "string",      "created_at": "2019-08-24T14:15:22Z",      "is_private": true,      "total_saves": 0,      "media": {        "type": "image",        "width": 0,        "height": 0,        "thumbnail": "http://example.com",        "original": "http://example.com"      },      "detected_aesthetics": "string",      "colors": [        {          "color": "string",          "amount": 0        }      ],      "user": {        "id": "string",        "username": "string",        "name": "string",        "url": "http://example.com",        "avatar_url": "http://example.com"      }    }  ],  "next_cursor": "string",  "has_more": true}

On this page