API Documentation
The Links Indexer API lets you create campaigns, schedule dripfeeds, and check your remaining credits from your own code. No dashboard needed. Send your links over and we handle the pinging.
Getting started
Links Indexer exposes a simple REST API that speaks JSON, so you can create
campaigns straight from your own system. Setup takes two steps: copy your
api_token from the Settings page, then point
your requests at the endpoints below.
Want to test your integration before committing? Create a free account and then contact us; we'll switch your account to a developer one so you can experiment freely.
https://linksindexer.com/api/
Every endpoint below lives under this base URL, and each one accepts
GET as well as
POST requests.
New to Links Indexer? Read about our link indexing service, compare plans and pricing, or browse the frequently asked questions.
Guides
Variables & Codes
What each response field means, plus the error codes and rate limits to watch for.
Read more →Create Campaign
Submit URLs, group them into campaigns, and control how fast they get pinged.
Read more →Overview
The Links Indexer API gives you direct access to our web services. You send an HTTP request, the API processes it, and you get JSON back.
Day to day, that means creating new campaigns, setting dripfeed days, checking how many daily credits you have left, and indexing links through your XML RPC requests.
Every endpoint accepts both GET and POST requests.
Prefer not to write code? The free backlink generator creates automated backlinks from your browser — no API key needed.
Authentication
Every request must carry your api_token, which
you'll find on the Links Indexer Settings page. Pass it as a request body
parameter or as a URL query parameter; both work the same way.
Variables & Codes
When a request fails, the Links Indexer API returns three things: a
success flag, a
message, and an
errors object that lists each field that
needs fixing.
{
"success": false,
"message": "Input Fields Validation Error",
"errors": {
"api_token": [
"API Token is required"
],
"urls": [
"URLS are required"
]
}
}
| HTTP | Key | Description |
|---|---|---|
200/404 |
success |
Whether the API request succeeded. Returns the boolean
true or
false depending on the query
response. |
200 |
message |
A success message, or a short description of what went wrong. |
200 |
api_token |
Your API authentication key, generated by our system for each client. It identifies you to the API. You can find yours on the settings page at Links Indexer. |
200 |
campaign_name |
The name under which your submitted URLs get grouped. Campaigns help you keep links organized. If you omit this variable or leave it blank, the system creates a campaign named with the current date time stamp. If a campaign with that name already exists, the system adds some random characters to the end of it. |
104 |
dripfeed |
Sets how links get scheduled. There are 3 possible options. |
dripfeed=0 |
If omitted or left blank, the system defaults to drip-feeding all links within 2 days. | |
dripfeed=7 |
Integers only, up to 15. Drip-feeds all the links over the number of days you define. | |
|
Daily pinged links = (number of links) / (number of days) | |
200 |
urls |
A string of all the URLs to send to our system, separated by | (single pipe) with no spaces or new lines. If you submit more links than your remaining daily limit, the system accepts only as many as that limit allows. |
422 |
rate_limit |
Repeated calls to any API function with an invalid api_token block the user for a few seconds, and the block grows with each failed attempt. The "Rate Limits" section of the API documentation covers this. |
[GET] Health
https://linksindexer.com/api/health-check
Returns the current server time. Useful as a quick smoke test: hit it once to confirm the API is up and responding before you send real requests.
<?php
$api_token = 'YOUR_API_KEY_HERE';
// build the POST/GET query string
$qstring = 'api_token=' . $api_token;
// Do the API Request using CURL functions
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://linksindexer.com/api/health-check',
CURLOPT_POSTFIELDS => $qstring,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response:
{
"success": true,
"timestamp": "Mon, Dec 11, 2023 10:41 AM" // current time in IST
}
[GET] Links Limit
https://linksindexer.com/api/credits
Returns how many links you have left for today, so you can tell whether the next batch will fit. Calling it is optional: once your credits run out, the system rejects further requests on its own.
<?php
$api_token = 'YOUR_API_KEY_HERE';
// build the POST/GET query string
$qstring = 'api_token=' . $api_token;
// Do the API Request using CURL functions
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://linksindexer.com/api/credits',
CURLOPT_POSTFIELDS => $qstring,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response:
{
"success": true,
"message": 50000
}
Parameters
| Params | Description |
|---|---|
api_token |
Your API key. Attach it to the request to authenticate with the Links Indexer API. |
[POST] Create Campaign
https://linksindexer.com/api/campaign/create
New API campaigns get a default 7 days
dripfeed: links submitted today start getting pinged tomorrow. Want them
indexed right away? Send dripfeed=0 instead.
Campaigns that share a name and are created on the same day get merged into one. Say you create a campaign called ABC at 1 AM with 100 links, then create another named ABC at 3 AM; the second one folds into the first. This keeps you from ending up with a pile of tiny campaigns. A campaign created on a later day is never merged with yesterday's, so don't worry if new API campaigns don't show up as separate entries.
<?php
$api_token = 'YOUR_API_KEY_HERE';
$campaign_name = 'CAMPAIGN_NAME_HERE'; // OPTIONAL
// All URLS to be sent are hold in an array for example
$urls = array('http://www.example.com', 'http://www.example.com/title');
// build the POST query string and join the URLs array with | (single pipe)
$qstring = 'api_token=' . $api_token . '&campaign_name=' . $campaign_name
. '&urls=' . urlencode(implode('|', $urls));
// Do the API Request using CURL functions
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://linksindexer.com/api/campaign/create',
CURLOPT_POSTFIELDS => $qstring,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response:
{
"success": true,
"message": "API Campaign 2022-06-18 00:35:01 is successfully created!"
}
Parameters
| Params | Description |
|---|---|
api_token |
Your API key. Attach it to the request to authenticate with the Links Indexer API. |
campaign_name |
The name to group your submitted URLs under. Campaigns help you keep links organized. If you omit this variable or leave it blank, the system creates a campaign named with the current date time stamp. |
urls |
A string of all the URLs to send to our system, separated by | (single pipe) with no spaces or new lines. If you submit more links than your remaining daily limit, the system accepts only as many as that limit allows. |
dripfeed |
How many days to spread the links over. Integers only, up to 15. |
Frequently asked questions
How do I authenticate with the Links Indexer API?
Every request must carry your
api_token, which you'll find on the Links Indexer
Settings page. Pass it as a request body parameter or as a URL query parameter;
both work the same way.
How do I check my remaining link credits?
Call the /api/credits endpoint with your
api_token. It returns how many links you have left for today. Calling it is
optional: once your credits run out, the system rejects further requests on
its own.
How do I create an indexing campaign?
Send your api_token, an optional
campaign_name, and your pipe-separated
urls to
/api/campaign/create. New campaigns get a
default 7 days dripfeed; send dripfeed=0 to
have links indexed right away. See the
Create Campaign section for a full example.
What happens if I submit more links than my daily limit?
The system accepts only as many links as your remaining daily limit allows, so a large batch never overdraws your credits.
For questions about the service itself - plans, credits, refunds - see the Links Indexer FAQ or compare our pricing plans.
Looking for answers about plans, credits, and indexing in general? Read the main Links Indexer FAQ.