LinkPanel APIreference
List services, create single or bulk orders, track delivery, retrieve reports, and generate optional planner recommendations.
curl https://linkpanel.io/api/v1/services \
-H "Authorization: Bearer blnk_live_sk_your_key"
{
"data": {
"services": [...]
}
}Start making requests in minutes.
Create API key
Create a scoped key from your LinkPanel account.
Read services
Fetch live service ids, pricing, delivery windows, and limits.
Create orders
Submit one order or many rows through the bulk endpoint.
Track results
Read order status and delivered backlink reports.
Service catalog
List active services with customer pricing, quantity limits, and delivery windows.
Single orders
Create one backlink order with service, target URL, anchor, keywords, and quantity.
Bulk orders
Create multiple orders in one request from your own rows or planner recommendations.
Reports
Retrieve order status, report URLs, and delivered backlink result rows.
Planner recommendations
Optionally generate keyword, service, and quantity recommendations before ordering.
Scoped keys
Grant only the scopes each integration needs.
Automation ready
Use the API from internal dashboards, scripts, Make, Zapier, or server jobs.
Endpoints
Base URL: https://linkpanel.io
| Method | Endpoint | Scope | Description |
|---|---|---|---|
| GET | /api/v1/services | services:read | Returns all active services available for ordering. |
| POST | /api/v1/planner/generate | planner:generate | Generates keywords, service recommendations, quantities, and a recommended wallet deposit. This does not save a plan, create orders, or take payment. |
| POST | /api/v1/planner/plans | planner:write | Generates a planner recommendation and saves it as a BacklinkPlan owned by the API key user. |
| GET | /api/v1/planner/plans/{id} | planner:read | Reads one saved AI planner plan owned by the API key user. The response includes snapshot URLs only, not raw page text. |
| POST | /api/v1/orders | orders:write | Creates a backlink order from a service, target URL, anchor, and quantity. |
| POST | /api/v1/orders/bulk | orders:write | Creates multiple backlink orders in one request. For planner recommendations, do not send the full plan_items array; copy each recommended service_id and quantity into rows for POST /api/v1/orders/bulk. |
| GET | /api/v1/orders | orders:read | Lists orders for the API key user. |
| GET | /api/v1/orders/{id} | orders:read | Reads one order, including timeline and backlink results when available. |
| GET | /api/v1/reports | reports:read | Returns completed orders and report-ready data. |
Read services
/api/v1/servicesReturns all active services available for ordering.
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | yes | Bearer API key with services:read scope. |
curl https://linkpanel.io/api/v1/services \
-H "Authorization: Bearer blnk_live_sk_your_key"{
"data": {
"services": [
{
"id": "service_id",
"name": "Guest Posting - General Blogs DR 25+",
"group": "Guest Posts",
"niche": "General",
"pricePerLink": 12,
"deliveryDays": { "min": 5, "max": 10 },
"indexability": 85,
"description": "Guest post placement on general blogs."
}
]
}
}Generate planner recommendation
/api/v1/planner/generateGenerates keywords, service recommendations, quantities, and a recommended wallet deposit. This does not save a plan, create orders, or take payment.
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | yes | Bearer API key with planner:generate scope. |
| website_url | string | yes | Website URL or domain. CamelCase websiteUrl is also accepted. |
| goal | string | yes | One of: Local Rankings, Parasite SEO, Google Rankings, Lead Generation. |
| budget_min | number | yes | Minimum budget in USD. CamelCase budgetMin is also accepted. |
| budget_max | number | yes | Maximum budget in USD. CamelCase budgetMax is also accepted. |
curl -X POST https://linkpanel.io/api/v1/planner/generate \
-H "Authorization: Bearer blnk_live_sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"website_url": "https://example.com",
"goal": "Google Rankings",
"budget_min": 100,
"budget_max": 500
}'{
"data": {
"website_url": "https://example.com",
"goal": "Google Rankings",
"budget": { "min": 100, "max": 500, "currency": "USD" },
"keywords": [
{ "keyword": "example service", "intent": "Service", "priority": "High" }
],
"selected_keywords": ["example service"],
"recommended_deposit": 300,
"plan_total": 300,
"order_api": {
"bulk_endpoint": "/api/v1/orders/bulk",
"single_endpoint": "/api/v1/orders",
"note": "To create orders from this plan, do not send the full plan_items array. Copy each recommended service_id and quantity into rows for POST /api/v1/orders/bulk."
},
"plan_items": [
{
"service_id": "service_id",
"service_name": "Niche Guest Post",
"quantity": 2,
"unit_price": 150,
"estimated_cost": 300,
"priority": "High",
"good_for_tags": ["Generating Authority"]
}
],
"order_drafts": [
{
"client_row_id": "service_id",
"service_id": "service_id",
"target_url": "https://example.com",
"keywords": ["example service"],
"anchor_text": "example service",
"anchor_type": "Branded",
"quantity": 2,
"special_instructions": "AI planner recommendation for Google Rankings. Priority: High."
}
],
"site_snapshot": {
"pages_checked": 3,
"page_urls": ["https://example.com/"]
}
}
}Generate and save planner plan
/api/v1/planner/plansGenerates a planner recommendation and saves it as a BacklinkPlan owned by the API key user.
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | yes | Bearer API key with planner:write scope. |
| website_url | string | yes | Website URL or domain. CamelCase websiteUrl is also accepted. |
| goal | string | yes | One of: Local Rankings, Parasite SEO, Google Rankings, Lead Generation. |
| budget_min | number | yes | Minimum budget in USD. CamelCase budgetMin is also accepted. |
| budget_max | number | yes | Maximum budget in USD. CamelCase budgetMax is also accepted. |
curl -X POST https://linkpanel.io/api/v1/planner/plans \
-H "Authorization: Bearer blnk_live_sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"website_url": "https://example.com",
"goal": "Lead Generation",
"budget_min": 200,
"budget_max": 800
}'{
"data": {
"plan": {
"id": "plan_id",
"planner_url": "/planner/plan_id",
"status": "DRAFT",
"created_at": "2026-06-08T00:00:00.000Z"
},
"website_url": "https://example.com",
"recommended_deposit": 450,
"plan_items": []
}
}Read saved planner plan
/api/v1/planner/plans/{id}Reads one saved AI planner plan owned by the API key user. The response includes snapshot URLs only, not raw page text.
| Name | Type | Required | Description |
|---|---|---|---|
| id | path | yes | BacklinkPlan id. |
| Authorization | header | yes | Bearer API key with planner:read scope. |
curl https://linkpanel.io/api/v1/planner/plans/plan_id \
-H "Authorization: Bearer blnk_live_sk_your_key"{
"data": {
"plan": {
"id": "plan_id",
"planner_url": "/planner/plan_id",
"status": "DRAFT"
},
"website_url": "https://example.com",
"goal": "Lead Generation",
"plan_items": [],
"site_snapshot": {
"pages_checked": 3,
"page_urls": ["https://example.com/"]
}
}
}Create order
/api/v1/ordersCreates a backlink order from a service, target URL, anchor, and quantity.
| Name | Type | Required | Description |
|---|---|---|---|
| service_id | string | yes | Service id from GET /api/v1/services. |
| target_url | string | yes | URL where links should point. |
| keywords | array | no | Keywords for the order. |
| anchor_text | string | no | If omitted, the first keyword is used. |
| quantity | number | no | Defaults to 1. Maximum 100. |
curl -X POST https://linkpanel.io/api/v1/orders \
-H "Authorization: Bearer blnk_live_sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"service_id": "service_id",
"target_url": "https://example.com/pricing",
"keywords": ["seo services"],
"anchor_text": "seo services",
"quantity": 1
}'{
"data": {
"order": {
"id": "order_id",
"status": "Pending",
"serviceName": "Guest Posting - General Blogs DR 25+",
"targetUrl": "https://example.com/pricing",
"quantity": 1,
"totalPrice": 12
}
}
}Create bulk orders
/api/v1/orders/bulkCreates multiple backlink orders in one request. For planner recommendations, do not send the full plan_items array; copy each recommended service_id and quantity into rows for POST /api/v1/orders/bulk.
| Name | Type | Required | Description |
|---|---|---|---|
| rows | array | yes | Order rows. From a plan, use the recommended service_id and quantity, then include the target_url, anchor_text, keywords, and any instructions for that order. |
| skip_invalid | boolean | no | Defaults to true. When false, creation stops at the first invalid row. |
| Authorization | header | yes | Bearer API key with orders:write scope. |
curl -X POST https://linkpanel.io/api/v1/orders/bulk \
-H "Authorization: Bearer blnk_live_sk_your_key" \
-H "Content-Type: application/json" \
-d '{
"skip_invalid": false,
"rows": [
{
"client_row_id": "planner_draft_1",
"service_id": "service_id",
"target_url": "https://example.com/pricing",
"keywords": ["seo services", "link building"],
"anchor_text": "seo services",
"anchor_type": "Branded",
"quantity": 2
}
]
}'{
"data": {
"orders": [
{
"id": "order_id",
"status": "Pending",
"serviceName": "Niche Guest Post",
"targetUrl": "https://example.com/pricing",
"quantity": 2,
"totalPrice": 300
}
],
"errors": []
}
}Read orders
/api/v1/ordersLists orders for the API key user.
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | yes | Bearer API key with orders:read scope. |
curl https://linkpanel.io/api/v1/orders \
-H "Authorization: Bearer blnk_live_sk_your_key"{
"data": {
"orders": [
{
"id": "order_id",
"status": "Completed",
"progressPct": 100,
"reportUrl": "https://example.com/report.pdf"
}
]
}
}Get order status
/api/v1/orders/{id}Reads one order, including timeline and backlink results when available.
| Name | Type | Required | Description |
|---|---|---|---|
| id | path | yes | Order id. |
| Authorization | header | yes | Bearer API key with orders:read scope. |
curl https://linkpanel.io/api/v1/orders/order_id \
-H "Authorization: Bearer blnk_live_sk_your_key"{
"data": {
"order": {
"id": "order_id",
"status": "Completed",
"progressPct": 100,
"results": []
}
}
}Read reports
/api/v1/reportsReturns completed orders and report-ready data.
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | yes | Bearer API key with reports:read scope. |
curl https://linkpanel.io/api/v1/reports \
-H "Authorization: Bearer blnk_live_sk_your_key"{
"data": {
"reports": [
{
"id": "order_id",
"status": "Completed",
"reportUrl": "https://example.com/report.pdf"
}
]
}
}Errors return a top-level error object with a message and optional details.
| Status | Meaning |
|---|---|
| 401 | API key is missing or invalid. |
| 403 | API key does not include the required scope. |
| 429 | Rate limit reached. Planner generation is limited per API key. |
| 422 | Request body failed validation. |
| 400 | Database or request error. |
{
"error": {
"message": "API key required"
}
}