Developer docs

A simple REST API for link campaigns.

Create campaigns, check balances and pull reports from your own tools — JSON in, JSON out, one Bearer key. Available on any credit balance.

What you can automate

Wire link building into your stack.

Everything you do in the dashboard, you can do over the API — for your own tooling or a client portal.

Create orders

Fire off a cloud stack, editorial, platform or guest-post campaign in a single POST — credits are spent and fulfilment starts automatically.

POST /api.php?e=campaigns

Pull live reports

Fetch any campaign with its live links and a white-label report URL — perfect for a client dashboard or automated status emails.

GET /api.php?e=campaign&id=481

Bearer-key auth

One key per workspace. Rotate any time.

Credits & catalogue

Check balance and product costs live.

Any balance

No plan gating — available to every account.

bash — cloudstacklinks api
# create a cloud stack for a client page
curl -X POST 'https://app.cloudstacklinks.com/api.php?e=campaigns' \
  -H 'Authorization: Bearer csl_…' -H 'Content-Type: application/json' \
  -d '{"product":"cloud","qty":1,"targets":"https://client.com/pricing"}'

# → response
{ "ok": true, "id": 481, "status": "queued" }
AI assistant · MCP

Or just run it from chat.

Connect CloudStackLinks to Claude — or any assistant that supports the Model Context Protocol — and drive your whole account in plain language. Order links, publish pages, pull reports and manage your queue without leaving the chat.

Your account, as chat tools

Install the CloudStackLinks MCP server, drop in your API key, and your assistant gets a set of tools that map to everything in the dashboard — running with your permissions, on your credit balance.

  • Order backlinks & check credits
  • Publish links & pull live reports
  • Works with Claude Desktop, Claude Code & more
Claude — cloudstacklinks
Order 2 cloud stacks for client.com/pricing, anchor “best CRM”.
Done — order #492 queued, 20 credits spent (128 left). I’ll have the report URL once it’s delivered.
via csl_create_order
Show my last 3 deployments.
3 live: moneynewsweb.co.in · pub-…r2.dev · 1mother.blog5.net
via csl_deployments
Reference

Full API reference.

Authentication

Every request is authenticated with your workspace API key as a Bearer token. Generate and rotate the key under Settings → API in the app. Keep it secret — it can spend your credits.

# header on every request
Authorization: Bearer csl_xxxxxxxxxxxxxxxxxxxxxxxx

Base URL

All endpoints live under the app host and take an e (endpoint) query parameter.

https://app.cloudstacklinks.com/api.php?e=<endpoint>

GET · products

GET?e=productslist link types & credit costs
# request
curl https://app.cloudstacklinks.com/api.php?e=products \
  -H "Authorization: Bearer $CSL_KEY"

# response
{
  "products": {
    "editorial": { "name": "Editorial contextual link", "credits": 1 },
    "platform":  { "name": "Platform / Web-2.0 link", "credits": 1 },
    "cloud":    { "name": "Cloud Stack (10 platforms)", "credits": 10 },
    "guestpost": { "name": "Guest post / niche edit", "credits": 8 }
  }
}

GET · credits

GET?e=creditscurrent balance
# response
{ "credits": 148 }

POST · campaigns

POST?e=campaignscreate & queue a campaign

Send a JSON body. product is one of editorial · platform · cloud · guestpost. targets and anchors are newline-separated; qty multiplies the credit cost; client_id is optional. Credits are deducted immediately and the campaign is queued for automatic fulfilment.

# request
curl -X POST https://app.cloudstacklinks.com/api.php?e=campaigns \
  -H "Authorization: Bearer $CSL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "cloud",
    "targets": "https://client.com/pricing\nhttps://client.com/features",
    "anchors": "client pricing\nbest widget tool",
    "qty": 1,
    "client_id": 12
  }'


# response
{ "ok": true, "id": 481, "status": "queued", "report_url": null }

GET · campaigns

GET?e=campaignsyour last 200 campaigns
# response
{ "campaigns": [
  { "id": 481, "product": "cloud", "qty": 1, "credits": 10,
    "status": "delivered", "created": "2026-09-14T…", "delivered": "2026-09-14T…" }
] }

GET · campaign

GET?e=campaign&id=481one campaign, with links & report URL
# response
{
  "id": 481, "product": "cloud", "status": "delivered",
  "targets": "https://client.com/pricing",
  "links": [
    { "platform": "Cloudflare R2", "url": "https://pub-….r2.dev/…", "anchor": "client pricing" }
  ],
  "report_url": "https://app.cloudstacklinks.com/report.php?t=…"
}

Errors

Errors return a non-200 status with a JSON error message.

401 { "error": "Invalid or missing API key…" }  # bad/absent Bearer
400 { "error": "Not enough credits — this needs 10, you have 4." }
404 { "error": "unknown endpoint", "endpoints": [ … ] }
Rate & scope. The API acts on your workspace only and spends your credit balance. Rotate your key any time in Settings → API; the old key stops working immediately.
Get started

Two ways in. Pick yours.

Same placements, same rebuild guarantee — the only question is whether you want us to run it, or you'd rather run it yourself and resell it.

Done-for-you

Buy a stack, we build it

Pick a ready-made package, drop in your target URLs, and we build, amplify and report the whole stack — order it online in minutes.

From $59 · order online in minutes
Order a stack
Platform · self-serve

Run & resell it yourself

Buy credits at wholesale rates and run campaigns from your own dashboard — white-label reports, clients, API and affiliate, all included. Set your own prices, keep the margin.

Plans from $49/mo or pay-as-you-go · free 2-credit trial, no card
Start free