SeoclerksDevelopers

Favorites

Saved listings and their folders.

GET /favorites

Favorite listings

Scope: listings:read, or the broad read. Newest first, by id.

Active public listings only.

Parameters

NameWhereDescription
cursorquerymeta.next_cursor from the previous page. Up to 1024 characters.
limitqueryPage size. Above 100 is treated as 100. At least 1. Default 25.
folder_idqueryOne of your own folders. At least 1.
If-None-MatchheaderAn ETag from an earlier response.

Example request

curl "https://www.seoclerk.com/api/v1/favorites" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 200

A page of these in data, with meta.limit and meta.next_cursor.

FieldTypeDescription
idinteger
service_idinteger
titlestring
created_attimestamp or null
{
    "data": [
        {
            "id": 1024,
            "service_id": 1024,
            "title": "Logo design",
            "created_at": "2026-10-10T14:03:22Z"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

POST /favorites

Save a listing

Scope: account:write, or the broad write. Idempotency-Key is required.

A listing already saved answers 200 with the same favourite. The listing's owner is alerted, at most once a day for the same member and listing, never for your own.

Parameters

NameWhereDescription
Idempotency-Key requiredheaderMakes a retry safe. Required on every POST. Must match ^[A-Za-z0-9_.-]{1,64}$.

Request body

FieldTypeDescription
service_id requiredintegerThe listing to save. 1 to 4294967295.

Example request

curl -X POST "https://www.seoclerk.com/api/v1/favorites" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Idempotency-Key: addfavorite-1" \
  -H "Content-Type: application/json" \
  -d '{"service_id":1024}'

Response 201

FieldTypeDescription
idinteger
service_idinteger
titlestring
created_attimestamp or null
{
    "data": {
        "id": 1024,
        "service_id": 1024,
        "title": "Logo design",
        "created_at": "2026-10-10T14:03:22Z"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Response 200

FieldTypeDescription
idinteger
service_idinteger
titlestring
created_attimestamp or null
{
    "data": {
        "id": 1024,
        "service_id": 1024,
        "title": "Logo design",
        "created_at": "2026-10-10T14:03:22Z"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /favorites/folders

Favorite folders

Scope: listings:read, or the broad read. Newest first, by id.

Parameters

NameWhereDescription
cursorquerymeta.next_cursor from the previous page. Up to 1024 characters.
limitqueryPage size. Above 100 is treated as 100. At least 1. Default 25.
If-None-MatchheaderAn ETag from an earlier response.

Example request

curl "https://www.seoclerk.com/api/v1/favorites/folders" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 200

A page of these in data, with meta.limit and meta.next_cursor.

FieldTypeDescription
idinteger
namestring
publicboolean
colorstring or null
created_attimestamp or null
{
    "data": [
        {
            "id": 1024,
            "name": "Example",
            "public": true,
            "color": "string",
            "created_at": "2026-10-10T14:03:22Z"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

POST /favorites/folders

Make a folder

Scope: account:write, or the broad write. Idempotency-Key is required.

At most 200 folders. Tags are removed from the name and it is stored HTML-encoded, as the website stores it; reads give it encoded.

Parameters

NameWhereDescription
Idempotency-Key requiredheaderMakes a retry safe. Required on every POST. Must match ^[A-Za-z0-9_.-]{1,64}$.

Request body

FieldTypeDescription
name requiredstring1 to 50 characters, not one of your folders already (any case). 1 to 50 characters.
publicbooleanShown on your profile. Default false.

Example request

curl -X POST "https://www.seoclerk.com/api/v1/favorites/folders" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Idempotency-Key: createfavoritefolder-1" \
  -H "Content-Type: application/json" \
  -d '{"name":"Example"}'

Response 201

FieldTypeDescription
idinteger
namestring
publicboolean
colorstring or null
created_attimestamp or null
{
    "data": {
        "id": 1024,
        "name": "Example",
        "public": true,
        "color": "string",
        "created_at": "2026-10-10T14:03:22Z"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

POST /favorites/folders/{id}/favorites

Put a favourite in a folder

Scope: account:write, or the broad write. Idempotency-Key is required.

Both must be your own. One already in the folder is left as it is.

Parameters

NameWhereDescription
id requiredpathAt least 1.
Idempotency-Key requiredheaderMakes a retry safe. Required on every POST. Must match ^[A-Za-z0-9_.-]{1,64}$.

Request body

FieldTypeDescription
favorite_id requiredintegerOne of your favourites, as GET favorites lists it. 1 to 4294967295.

Example request

curl -X POST "https://www.seoclerk.com/api/v1/favorites/folders/1024/favorites" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Idempotency-Key: addfavoritetofolder-1" \
  -H "Content-Type: application/json" \
  -d '{"favorite_id":1024}'

Response 204

No body.

Errors

DELETE /favorites/folders/{id}/favorites/{favorite_id}

Take a favourite out of a folder

Scope: account:write, or the broad write. Idempotency-Key is optional.

Parameters

NameWhereDescription
id requiredpathAt least 1.
favorite_id requiredpathAt least 1.
Idempotency-KeyheaderMakes a retry safe. Must match ^[A-Za-z0-9_.-]{1,64}$.

Example request

curl -X DELETE "https://www.seoclerk.com/api/v1/favorites/folders/1024/favorites/1024" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 204

No body.

Errors

DELETE /favorites/{id}

Remove a favourite

Scope: account:write, or the broad write. Idempotency-Key is optional.

Parameters

NameWhereDescription
id requiredpathAt least 1.
Idempotency-KeyheaderMakes a retry safe. Must match ^[A-Za-z0-9_.-]{1,64}$.

Example request

curl -X DELETE "https://www.seoclerk.com/api/v1/favorites/1024" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 204

No body.

Errors