API

A REST API for link orders.

Anything you can click, you can call. JSON in, JSON out, keys per workspace, and a sandbox that returns fake orders so you can build against it before spending money.
  • REST endpoints
  • Order, status and reports
  • Keys with software and reseller plans
Illustration of a developer working with an API key and server data flow
Reference (01)

Endpoints

POST /v1/ordersCreate an order
GET /v1/orders/:idOrder status and progress
GET /v1/linksEvery link, live and index state
GET /v1/sitesFilterable site database
POST /v1/brandsCreate a sub-brand workspace
GET /v1/reports/:idWhite-label report as CSV or PDF
POST /v1/orders
curl -X POST https://api.profilebacklinks.com/v1/orders \
  -H "Authorization: Bearer $PB_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "package": "dofollow",
    "quantity": 100,
    "target_url": "https://client.com/service",
    "anchors": ["client", "https://client.com", "seo service"],
    "drip_days": 28,
    "brand_id": "brd_9f21"
  }'

Responses use standard HTTP status codes and a stable error.code string. Rate limit is 10 requests a second per key.

Setup (02)

Getting a first order through

  1. Step 01

    Generate a key

    Create one per workspace from the dashboard. Keys are scoped so a leaked key never touches another client's data.

  2. Step 02

    Call the sandbox

    Point the same request at the sandbox host first. It returns synthetic orders that move through states on a timer.

  3. Step 03

    Create a real order

    Swap in your live key and target URL. Quantity, package and drip pace are all set in the request body, nothing hidden in a UI.

  4. Step 04

    Poll or subscribe

    Either poll GET /v1/orders/:id, or register a webhook and let status changes push to you instead.

Auth (03)

Keys and webhooks

Generate keys in your account, one per workspace so a leaked key never touches another client. Rotate whenever you like; the old key keeps working for an hour.

Bearer token in the header, nothing in the query string. Requests over plain HTTP are rejected rather than redirected.

Webhooks fire on three events: a link goes live, a link is confirmed indexed, and an order completes. Payloads are signed with HMAC-SHA256 so you can verify them before acting.

Failed deliveries retry for a day with exponential backoff, then land in a dead-letter list you can replay.

Pricing (04)

What orders cost through the API

The API prices orders exactly like the dashboard: $5 per link up to 50, $4 from 51 to 100, and $3 above 100. Setting recurring: true on an order applies the 25% recurring discount, which carries a three-month minimum commitment. Niche, language and link type are required fields on every order, same as a manual purchase.

Use cases (05)

Common integrations

Internal dashboards

Agencies pull order and link status into their own client dashboards instead of sending clients into our interface.

Rank tracking tools

Some teams wire the webhook for indexed links into their own rank tracker, so a new link and its first rank movement show up in one place.

Automated reordering

A cron job checks live counts weekly and files a top-up order automatically when a batch drops below a threshold.

Security (06)

How keys and data are handled

Keys are stored hashed, the same way a password would be, so nobody on our side can read your key back to you if you lose it. Lost keys get revoked and reissued.

All traffic runs over TLS, following the same baseline as standard TLS practice for any API handling payment-linked accounts.

Every request is logged with key, IP and endpoint for 90 days, viewable from your dashboard so you can audit what a given key has actually done.

Webhook signatures use a per-workspace secret, so verifying a payload does not require trusting the network it arrived over.

Access (07)

Who gets a key

Included with the software plan at ten thousand calls a month, and uncapped in practice for reseller partners. One-off package buyers do not need it, though the sandbox is open to everyone with an account.

Questions (08)

Developer questions

Is there an SDK?+
A thin TypeScript client and a Python one. Both are wrappers around the same endpoints, so curl is fine too.
Can I cancel an order through the API?+
Yes, until the first link publishes. After that you can pause the drip instead and keep what is built.
Does the sandbox cost anything?+
No. It returns synthetic orders that move through states on a timer, so you can test webhooks properly.
What is the rate limit?+
10 requests a second per key. Bursts above that get a 429 with a retry-after header, not a silent drop.
Can I filter GET /v1/links by project?+
Yes, pass a project or brand_id query param. Without one you get every link across the whole workspace.
Do webhook payloads include the site name?+
Yes, along with the URL, anchor, target and current live/index state at the time of the event.

10 links for $19.
New customers only.

One target URL, one batch, no subscription attached. It exists so you can judge the quality with your own eyes before a bigger run.