Automated Reciprocal Link Monitoring & Alerts
Stop manually checking backlinks. Get real-time notifications when a reciprocal link is removed, changed to nofollow, or breaks.
Why Monitor Reciprocal Links?
-
1
Protect Your SEO Rankings
Lost or nofollow backlinks can quietly hurt your rankings. Get alerted the moment it happens.
-
2
Automated 24/7 Monitoring
Set it once. We continuously check your links every day/every week/every month based on your service level— no maintenance needed.
-
3
Custom Webhook Notifications
Easily integrate alerts with your Slack, CRM, or custom workflow using API or webhooks.
-
4
Track Link Exchanges with Ease
Log and monitor reciprocal links between domains — including custom target URLs.
Documentation
Reciprocal Link Checking
You can define reciprocal links, see history of monitoring results either via UI or API (if you are a paid user). You will get email alerts regardless of you subscription level when the check fails. API and Webhooks are available in paid version.
GET /reciprocal-link/{linkid}
Should provide a response like below.
{
"success": {
"total": 1
},
"contents": {
"id": "rcln_12fS7sK",
"name": "funtranslations.com → fungenerators.com",
"url": "https://funtranslations.com/pirate",
"target": "https://fungenerators.com/name/pirate/",
"created_at": "2025-04-12T20:09:56.000000Z",
"updated_at": "2025-04-12T20:09:56.000000Z",
"user": 1
},
"copyright": {
"url": "api.interfaces.one",
"year": "2025"
}
}
Getting the list of Link definitions
GET /reciprocal-link/search
parameters query=<query> // optional
Should provide a response like below
{
"success": {
"total": 1
},
"contents": {
"reciprocal_links": [
{
"id": "rcln_12fS7sK",
"name": "funtranslations.com → fungenerators.com",
"url": "https://funtranslations.com/pirate",
"target": "https://fungenerators.com/name/pirate/",
"created_at": "2025-04-12T20:09:56.000000Z",
"updated_at": "2025-04-12T20:09:56.000000Z",
"user": 1
}
],
"links": {
"self": "http://api.interfaces.one/reciprocal-link/search?page=1",
"next": null,
"prev": null
},
"meta": {
"totalPages": 1,
"totalItems": 1,
"itemsOnThisPage": 1,
"currentPage": 1
}
},
"copyright": {
"url": "api.interfaces.one",
"year": "2025"
}
}
History of check results
To get the entire history of the link check results you can use this API.
GET /reciprocal-link/{linkid}/history
The above should provide a result like below.
{
"success": {
"total": 1
},
"contents": {
"checks": [
{
"link_id": "rcln_12fS7sK",
"link_reachable": true,
"has_link": true,
"has_do_follow": true,
"created_at": "2025-04-12T20:09:56.000000Z"
},
{
"link_id": "rcln_12fS7sK",
"link_reachable": true,
"has_link": true,
"has_do_follow": true,
"created_at": "2025-04-11T20:19:56.000000Z"
}
],
"links": {
"self": "http://api.interfaces.one/reciprocal-link/rcln_12fS7sK/history?page=1",
"next": null,
"prev": null
},
"meta": {
"totalPages": 1,
"totalItems": 1,
"itemsOnThisPage": 2,
"currentPage": 1
}
},
"copyright": {
"url": "api.interfaces.one",
"year": "2025"
}
}
Webhook Payload
If your subscription enables webhook notification, the posted content will be similar to the following payload.
{
"url":"https://example.com/page1/",
"target":"https://example2.com/page5/",
"result": {
"hasLink":false,
"fetchError":true,
"hasDoFollow":false
},
"link_id":"rcln_1mIZnTQ",
"checked_at":"2025-04-12 19:01:57"
}
Ratelimiting
Some of our API calls may be public(requires free API key) , while others requires paid subscription. To maintain our serice levels both public and private API endpoints are ratelimited. Please consult your specific plan that you subscribed to for the rate limit details.
Authentication
Currently we support API Key based authentication. Please set your Autorization Bearer request header with value of your API key. Alternatively you can also pass api_key= as a request parameter, though we strongly discourage this mode of passing the key, since it will allow others to see your key.
In curl this would mean sending the Authorization header like below.
curl -i <url> -H "Authorization: Bearer <api_key>"
If you are using PHP.
$authorization = "Authorization: Bearer <api_key>";
$ch = curl_init('<url>'); // Initialise cURL
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); // OR GET
$result = curl_exec($ch);
curl_close($ch);
In javascript you can use headers key to add the authorization header
$.ajax({
url: '<url>'
type: 'GET',
contentType: 'application/json'
headers: {
'Authorization': 'Bearer <api_key>'
},
success: function (result) {
// CallBack(result);
},
error: function (error) {
}
});
Pricing
Choose the Perfect Plan for Your Needs
We understand that every customer is unique, which is why we offer a variety of pricing plans tailored to fit different needs and budgets. Whether you're a small business owner, a growing startup, or a large enterprise, we have a plan that will provide you with the features and support you need to succeed. Explore our plans below and find the one that's right for you!
Interfaces One Reciprocal Link Checker Free
- 1 API Key
- No setup, or hidden fees
- No API Access
- 5 Total Links
- No API Access
- No webhook notification
- Fast support
Interfaces One Reciprocal Link Checker Premium
- 1 API Key
- No setup, or hidden fees
- 1000 API Calls/day
- 500 Total Links
- API Access Enabled
- No webhook notification
- Fast support
Interfaces One Reciprocal Link Checker Enterprise
- 1 API Key
- No setup, or hidden fees
- 5000 API Calls/day
- 1500 Total Links
- API Access Enabled
- Webhook Notification
- Fast support