The BuyLinksForSEO API guide
Connect publisher research and backlink orders to your own tools. This reference covers authentication, request formats, the order-to-publication workflow and responses. Your integrations use the same balance and orders as your BuyLinksForSEO account.
Base URL & authentication
- Base URL
https://buylinksforseo.com - Version prefix
/v1 - Auth
Authorization: Bearer <your_api_key>(or?api_key=…) - Content type
application/json
Create and copy keys in your dashboard → API. A key belongs to one account and acts on that account. The API can do everything except top up your balance — adding funds stays in the dashboard.
Response format
Every response is JSON. Success and error envelopes:
{ "success": true, "data": { … } }
{ "success": false, "error": { "code": "unauthorized", "message": "…" } }Endpoints
/v1/meYour account.
{ "success": true, "data": { "id": 123, "email": "[email protected]", "name": "You", "balance": 45.00 } }/v1/balanceCurrent account balance (USD).
/v1/donorsMarketplace donor sites (paginated, 20/page). Optional query params: page, domain_filter, ext_filter, dr_min, referring_domains_min, price_filter, top100_filter.
{ "success": true, "data": [ { "id": 42, "domain": "blog.com", "dr": 61, "price": 12 } ],
"pagination": { "current_page": 1, "total_pages": 478, "total_records": 9543 } }/v1/article-promptReturns the exact prompt we use to write the article — so you can read it and edit it. Optional query params: keyword, target_url, language, recommendations. Edit the returned prompt and pass it back to POST /v1/orders as recommendations; keep the OUTPUT FORMAT block and it runs verbatim.
{ "success": true, "data": { "default_prompt": "…", "editable_field": "recommendations",
"modes": { "own": "…", "prompt": "…", "auto": "…" } } }/v1/ordersCreate backlink order(s) into your basket — no charge yet. donor_ids is always required; then pick one of three content modes:
- Auto — send
target_url+keyword; we research & write the article. - From your prompt — also send
recommendations(fetch & edit the base prompt viaGET /v1/article-prompt); we write to your brief. - Your own article — send
content(+ optionaltitle,article_url); we publish your ready HTML as-is. Requires own-content enabled on your account.
// auto
{ "donor_ids": [42, 43], "target_url": "https://you.com/pricing", "keyword": "best crm", "language": "en" }
// from your prompt
{ "donor_ids": [42], "target_url": "https://you.com", "keyword": "best crm", "recommendations": "Friendly tone, cite 2 studies…" }
// your own article
{ "donor_ids": [42], "content": "<article>…</article>", "title": "My headline" }{ "success": true, "data": { "mode": "auto", "order_content_ids": [9001, 9002],
"basket_ids": [55, 56], "total_price": 24, "status": "in_basket" } }/v1/basketInspect what's currently in your basket (drafted articles, donor, price) before publishing.
/v1/basket/payPublish everything in your basket, paying from your account balance. If the balance is short it publishes nothing and returns success:false with how much more is needed. Topping up is dashboard-only.
{ "success": true, "data": { "status": "published", "charged": 24, "links": 2 } }/v1/linksYour ordered links (backlinks) with status and published URL. /v1/orders (GET) is an alias.
{ "success": true, "count": 1, "data": [
{ "id": 8891, "target_url": "https://you.com/pricing", "keyword": "best crm",
"status": "active", "published_url": "https://donor.com/…?aio-…", "cost": "12.00" } ] }Ordering flow
- Find sites —
GET /v1/donorsto pick relevant, real-traffic donors. - Order —
POST /v1/orderswith the donor ids and your page/keyword → items land in your basket. Choose the content mode: auto, your edited prompt (recommendations, seeGET /v1/article-prompt), or your owncontent. - Review —
GET /v1/basketto check the drafts and total. - Publish —
POST /v1/basket/paypays from your balance and pushes the links live (~24h). - Track —
GET /v1/linksfor status and published URLs.
Errors
- 401
unauthorized— missing / invalid / revoked key - 400
bad_request/payment_failed— bad body, or the balance can't cover the basket - 403
forbidden/own_content_disabled— key can't order, or own-content isn't enabled on your account - 404
not_found— unknown endpoint or resource - 405
method_not_allowed - 500
server_error— transient; retry
For AI agents: authenticate with the Bearer key, call GET /v1/me to confirm the account, GET /v1/donors to find sites, then POST /v1/orders → POST /v1/basket/pay to order and publish. Or skip HTTP entirely and use the MCP server — same key, native tools.