Back to all sites

API

Every file is static. It updates when the list changes. No key, no rate limit.

Endpoints

/api/sites.json
Every live site in one request: generated_at, license, attribution, count and a sites array of PublicSite objects.
/api/sites/{id}.json
One PublicSite object. The id is the slug used in /sites/{id}.
/sites/{id}.md
One site as Markdown: facts, what you need before you submit, and the steps.
/llms.txt
Short index for language models, with links to the JSON and Markdown of every site.
/llms-full.txt
Every site as Markdown in a single file, separated by `---`.
/skill.md
Agent skill: how to pick sites from the list and submit a product to them.
/skill.zip
The same skill as a zip archive, ready to install.

Fields

Each entry in sites, and each /api/sites/{id}.json response, is a PublicSite. Missing values are null.

FieldTypeMeaning
idstringSlug of the site, stable across builds. Used in /sites/{id}.
namestringDisplay name.
domainstringHost of the site, for example producthunt.com.
urlstringAddress of the site.
submit_urlstring | nullPage where you submit. null when unknown.
categorystringOne of launch-platform, ai-directory, saas-directory, community, blog-platform, developer-platform, other.
price_typestringOne of free, paid, freemium, unknown.
price_notestring | nullShort note on cost, such as a price or a free tier limit.
link_typestringOne of dofollow, nofollow, unknown.
drnumber | nullAhrefs Domain Rating, 0 to 100. null when unknown.
monthly_visitsnumber | nullEstimated visits per month. null when unknown.
needs_badgeboolean | nullWhether you must place a badge or link on your own site. null when unknown.
asks{ text: string, hard: boolean }[]What the site asks in return. hard is true when it is required, false when optional.
ledestringOne-line description.
requirements{ must: string[], not_needed: string[] }What you need before you submit, and what you can skip.
stepsstring[]How to submit, in order.
tipstring | nullExtra advice, up to 1,200 characters. May contain paragraph breaks. null when none.
ranknumberPosition in the recommended order. Lower comes first.
verified_atstring | nullDate we last checked the site, YYYY-MM-DD. null when not checked yet.
updated_atstringISO 8601 time of the last change to the entry.

Example

Free sites that don’t ask for a badge:

curl -s https://everybacklink.com/api/sites.json \
  | jq -r '.sites[] | select(.price_type == "free" and .needs_badge == false) | "\(.name)\t\(.url)"'

Licence

The data is licensed under CC BY-NC 4.0. You can copy and change it for non-commercial use. Credit everybacklink.com and link to everybacklink.com. For commercial use, ask us first: contact@everybacklink.com. The site code is MIT licensed.

Know a site we’re missing, or see a mistake? Suggest a site.