SeoclerksDevelopers

Account

The authenticated member.

GET /me

The authenticated account and the key in use

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
idinteger
usernamestring
verifiedboolean
member_sincetimestamp or null
keyobjectThe key this request was made with.
key.namestring
key.prefixstringThe public lookup prefix; never the secret.
key.scopeslist of string
{
    "data": {
        "id": 1024,
        "username": "example",
        "verified": true,
        "member_since": "2026-10-10T14:03:22Z",
        "key": {
            "name": "Example",
            "prefix": "string",
            "scopes": [
                "string"
            ]
        }
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/blocked-members

Members you have blocked

Scope: messages: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/me/blocked-members" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 200

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

FieldTypeDescription
idinteger
member_idinteger
{
    "data": [
        {
            "id": 1024,
            "member_id": 1024
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

POST /me/blocked-members

Block a member

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

A blocked member cannot message you or order from you. Not a member you have an active order with. Already blocked: 200.

Parameters

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

Request body

FieldTypeDescription
member_id requiredintegerThe member to block. Not yourself. 1 to 4294967295.

Example request

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

Response 201

FieldTypeDescription
member_idinteger
{
    "data": {
        "member_id": 1024
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Response 200

FieldTypeDescription
member_idinteger
{
    "data": {
        "member_id": 1024
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

DELETE /me/blocked-members/{member_id}

Unblock a member

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

Parameters

NameWhereDescription
member_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/me/blocked-members/1024" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 204

No body.

Errors

GET /me/bump-balance

Boost credits

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
freeinteger
paidinteger
{
    "data": {
        "free": 1,
        "paid": 1
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/bumps

Boost credit history

Scope: 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/me/bumps" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 200

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

FieldTypeDescription
idinteger
typestring
reasonstring
amountintegerCredits added (positive) or spent (negative).
order_idinteger0 when no order is involved.
created_attimestamp or null
{
    "data": [
        {
            "id": 1024,
            "type": "string",
            "reason": "string",
            "amount": 1,
            "order_id": 1024,
            "created_at": "2026-10-10T14:03:22Z"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/levels

Buyer and seller levels

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
seller_levelinteger
seller_labelstring
buyer_levelinteger
ratingnumber
rating_countinteger
community_contributionsinteger
{
    "data": {
        "seller_level": 1,
        "seller_label": "string",
        "buyer_level": 1,
        "rating": 4.8,
        "rating_count": 1,
        "community_contributions": 1
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/notification-preferences

Notification preferences

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
receive_pmboolean
receive_emailboolean
receive_admin_emailboolean
receive_wtbskill_emailboolean
receive_follower_emailboolean
receive_following_emailboolean
receive_faq_emailboolean
faq_autoscribeboolean
receive_device_alertsboolean
phone_dealsboolean
address_dealsboolean
{
    "data": {
        "receive_pm": true,
        "receive_email": true,
        "receive_admin_email": true,
        "receive_wtbskill_email": true,
        "receive_follower_email": true,
        "receive_following_email": true,
        "receive_faq_email": true,
        "faq_autoscribe": true,
        "receive_device_alerts": true,
        "phone_deals": true,
        "address_deals": true
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

PATCH /me/notification-preferences

Update notification preferences

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

Any non-empty subset of the fields. Returns the section as GET would. The website's own settings rules apply.

Parameters

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

Request body

FieldTypeDescription
receive_pmboolean
receive_emailboolean
receive_admin_emailboolean
receive_wtbskill_emailboolean
receive_follower_emailboolean
receive_following_emailboolean
receive_faq_emailboolean
faq_autoscribeboolean
receive_device_alertsboolean
phone_dealsboolean
address_dealsboolean

Example request

curl -X PATCH "https://www.seoclerk.com/api/v1/me/notification-preferences" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"receive_pm":true}'

Response 200

FieldTypeDescription
receive_pmboolean
receive_emailboolean
receive_admin_emailboolean
receive_wtbskill_emailboolean
receive_follower_emailboolean
receive_following_emailboolean
receive_faq_emailboolean
faq_autoscribeboolean
receive_device_alertsboolean
phone_dealsboolean
address_dealsboolean
{
    "data": {
        "receive_pm": true,
        "receive_email": true,
        "receive_admin_email": true,
        "receive_wtbskill_email": true,
        "receive_follower_email": true,
        "receive_following_email": true,
        "receive_faq_email": true,
        "faq_autoscribe": true,
        "receive_device_alerts": true,
        "phone_deals": true,
        "address_deals": true
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/profile

Public profile

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
idinteger
usernamestring
full_namestring
descriptionstring
skillsstring
avatar_urlstring
member_sincetimestamp or null
headlinestring
taglinestring
{
    "data": {
        "id": 1024,
        "username": "example",
        "full_name": "string",
        "description": "A short description.",
        "skills": "string",
        "avatar_url": "https://www.seoclerk.com/example",
        "member_since": "2026-10-10T14:03:22Z",
        "headline": "string",
        "tagline": "string"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

PATCH /me/profile

Update public profile

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

Any non-empty subset of the fields. Returns the section as GET would. The website's own settings rules apply.

Parameters

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

Request body

FieldTypeDescription
full_namestringA first and last name. Can be set once; a name already set cannot be changed. Up to 100 characters.
descriptionstringUp to 300 characters.
skillsstringUp to 350 characters.
headlinestringUp to 255 characters.
taglinestringUp to 255 characters.

Example request

curl -X PATCH "https://www.seoclerk.com/api/v1/me/profile" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"full_name":"string"}'

Response 200

FieldTypeDescription
idinteger
usernamestring
full_namestring
descriptionstring
skillsstring
avatar_urlstring
member_sincetimestamp or null
headlinestring
taglinestring
{
    "data": {
        "id": 1024,
        "username": "example",
        "full_name": "string",
        "description": "A short description.",
        "skills": "string",
        "avatar_url": "https://www.seoclerk.com/example",
        "member_since": "2026-10-10T14:03:22Z",
        "headline": "string",
        "tagline": "string"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/ratings

Ratings received

Scope: 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.
rolequeryRatings received as a seller or as a buyer. One of seller, buyer. Default seller.
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

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

FieldTypeDescription
idinteger
member_idintegerThe member rated.
rater_idinteger
service_idinteger
positiveboolean
negativeboolean
commentstring
created_attimestamp or null
edited_attimestamp or null
replystringThe seller's reply. Only on ratings of a seller, and only when there is one.
{
    "data": [
        {
            "id": 1024,
            "member_id": 1024,
            "rater_id": 1024,
            "service_id": 1024,
            "positive": true,
            "negative": true,
            "comment": "Great work.",
            "created_at": "2026-10-10T14:03:22Z",
            "edited_at": "2026-10-10T14:03:22Z",
            "reply": "string"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/recommendations

Published recommendations received

Scope: 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/me/recommendations" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY"

Response 200

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

FieldTypeDescription
idinteger
author_idinteger
textstring
created_attimestamp or null
updated_attimestamp or null
{
    "data": [
        {
            "id": 1024,
            "author_id": 1024,
            "text": "Hello.",
            "created_at": "2026-10-10T14:03:22Z",
            "updated_at": "2026-10-10T14:03:22Z"
        }
    ],
    "meta": {
        "limit": 1,
        "next_cursor": "string",
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/response-time

Published response-time average

Scope: read.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
average_secondsinteger
refresh_pendingbooleanA recalculation is due; reading never triggers it.
window_daysinteger
{
    "data": {
        "average_seconds": 1,
        "refresh_pending": true,
        "window_days": 1
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

GET /me/settings

Account settings

Scope: read.

No credentials, security settings or payout destinations.

Parameters

NameWhereDescription
If-None-MatchheaderAn ETag from an earlier response.

Example request

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

Response 200

FieldTypeDescription
emailstringRead only. Changed on the website.
timezonestringIANA identifier.
show_freelancerboolean
allow_customboolean
allow_portfolioboolean
email_verifiedboolean
phone_verifiedboolean
address_verifiedboolean
identity_verifiedboolean
out_of_officeboolean
work_fromstring or null
work_tostring or null
support_emailstring or nullRead only. Changed on the website.
support_urlstring or null
skypestring or null
discordstring or null
whatsappstring or null
support_phonestring or null
other_contact_supportstring or null
{
    "data": {
        "email": "[email protected]",
        "timezone": "America/New_York",
        "show_freelancer": true,
        "allow_custom": true,
        "allow_portfolio": true,
        "email_verified": true,
        "phone_verified": true,
        "address_verified": true,
        "identity_verified": true,
        "out_of_office": true,
        "work_from": "string",
        "work_to": "string",
        "support_email": "string",
        "support_url": "string",
        "skype": "string",
        "discord": "string",
        "whatsapp": "string",
        "support_phone": "string",
        "other_contact_support": "string"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors

PATCH /me/settings

Update account settings

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

Any non-empty subset of the fields. Returns the section as GET would. The website's own settings rules apply. Email, password, security and payout fields are website-only and are refused as unknown fields.

Parameters

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

Request body

FieldTypeDescription
timezonestringIANA identifier. Up to 35 characters.
show_freelancerboolean
allow_customboolean
allow_portfolioboolean
out_of_officeboolean
work_fromstring or nullA 12-hour time, as the settings page takes it. Up to 32 characters.
work_tostring or nullUp to 32 characters.
support_urlstring or nullhttp or https. Checked for spam and phishing. Up to 500 characters.
skypestring or nullUp to 128 characters.
discordstring or nullUp to 128 characters.
whatsappstring or nullA valid phone number. Up to 64 characters.
support_phonestring or nullA valid phone number. Up to 64 characters.
other_contact_supportstring or nullUp to 500 characters.

Example request

curl -X PATCH "https://www.seoclerk.com/api/v1/me/settings" \
  -H "Authorization: Bearer $SEOCLERKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"timezone":"America/New_York"}'

Response 200

FieldTypeDescription
emailstringRead only. Changed on the website.
timezonestringIANA identifier.
show_freelancerboolean
allow_customboolean
allow_portfolioboolean
email_verifiedboolean
phone_verifiedboolean
address_verifiedboolean
identity_verifiedboolean
out_of_officeboolean
work_fromstring or null
work_tostring or null
support_emailstring or nullRead only. Changed on the website.
support_urlstring or null
skypestring or null
discordstring or null
whatsappstring or null
support_phonestring or null
other_contact_supportstring or null
{
    "data": {
        "email": "[email protected]",
        "timezone": "America/New_York",
        "show_freelancer": true,
        "allow_custom": true,
        "allow_portfolio": true,
        "email_verified": true,
        "phone_verified": true,
        "address_verified": true,
        "identity_verified": true,
        "out_of_office": true,
        "work_from": "string",
        "work_to": "string",
        "support_email": "string",
        "support_url": "string",
        "skype": "string",
        "discord": "string",
        "whatsapp": "string",
        "support_phone": "string",
        "other_contact_support": "string"
    },
    "meta": {
        "request_id": "9f2c4e1ab07d3351"
    }
}

Errors