Introduction

The internal linking API returns a list of anchor texts & destination URLs for page, with an optional grouping. Internal linking grouping is used to render a group of links in one section of the screen that makes it easier for the user to understand.

If your Customer Success Manager has talked to you about this, we may also return content in the same response as the links. This may make sense if you are using both our ContentGen.io and InternalLinking.io modules, because you will only need to make one request per page.

A typical response should resolve within 50 ms. Please discuss your load requests per second requirements with your Customer Success Manager. Please also do local caching. To reduce latency from your side you should keep the connection open for subsequent requests.

You would do a POST request to our endpoint with

Responses

If we have neither content nor links for the given page we’ll return a HTTP 204 status with no body. Otherwise we’ll return an HTTP 200 status with a JSON object containing the links and content we have for the page. The schema is as follows:

{
	"relatedSearches" : [
			{"name": "<anchor text>", "url": "<destination URL>"},
			{"name": "<anchor text>", "url": "<destination URL>"},
			...
		],
		"popularSearches" : [
			{"name": "<anchor text>", "url": "<destination URL>"},
			{"name": "<anchor text>", "url": "<destination URL>"},
			...
		],
		"content": [
			"title": "title text",
	    "h1": "h1 text",
	    "meta_description": "meta description text",
	    "blurb": "Elevate your running game with our collection of premium running socks..."
}

For content, if we don’t have data for a content type, we will send the key with an empty string as value. You should show either nothing or a default value, depending on the field.

For linking blocks, the block name can be changed dynamically by us or your team. You can use the linking block key string directly as the title of the block on the page, or you can hard code it. If we or your team add more blocks, they will let you know so you know where on the page to put them.

To reduce latency from your side you could keep the connection open for subsequent requests.