Link Purchase Process

After successful authorization, the next important step is to create a project (API method Project.addSimpleProjectAndContent). For this, you will need a domain for promotion (e.g., https://example.com/):


  curl --location 'https://app.serpzilla.com/rest/Project/addSimpleProjectAndContent' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer XXXXXXXXXXXX' \
  --header 'Cookie: AUTH_TICKET=XXXXXXXXXXX' \
  --data '{
    "domain": "https://example.com/"
  }'

Key data from the API response:

  • id – the identifier of the created project (needed for purchasing the link)
  • urlId – the identifier of the promoted URL (main page of the promoted domain; generated automatically)
  • textId – the identifier of the text (promotion domain name; generated automatically)
  • isError – indicates if there was an error creating the project

To create a custom promotion URL, use the API method Content.addTexts. You will need the identifier of the created project:


  curl --location 'https://app.serpzilla.com/rest/Content/add/texts/projectId/123456' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: XXXXXXXXXXXX' \
  --header 'Cookie: AUTH_TICKET=XXXXXXXXXXXX' \
  --data '{
  	"urlsTexts": [
      	{
          	"url": "https://example.com/blog/",
          	"texts": [
              	{
                  	"text": "Create #a#a new#/a# example"
              	}
          	]
      	}
  	]
  }'

The response will include identifiers of the created URL and text.

After obtaining the urlId, you can proceed to purchase links. For this, you need to search for sites based on certain criteria. For example, setting a filter for price from 30 to 50 USD in the Niche Edits search, in "tree" view mode using the API method SearchRent.searchRentTree:


  curl --location 'https://app.serpzilla.com/rest/SearchRent/rent/tree/urlId/12345 \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer XXXXXXXXXXXX' \
  --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX' \
  --data '{
    "priceRentFrom": 30,
    "priceRentTo": 50
  }'

The response will contain:


  {
  	"jobHandleId": "217d8f355065b59072f1dbfceed92204a435368f",
  	"message": " Task added to queue ",
  	"metaData": "{"SERPZILLA":"XXXXXXXXXXXX","cgeoip_country_iso_code":"RU"}"
  }

This result indicates that the request was successful and the server is currently selecting the necessary sites. To create a more specific filter, you need to set filter parameters. These can be found in the API method specification for SearchRent.searchRentTree.

From the received response, you will need the jobHandleId and metadata. To get the results, use SearchRent.searchRentTreeResult:


  curl --location 'https://app.serpzilla.com/rest/SearchRent/rent/tree/getResult/jobHandleId/217d8f355065b59072f1dbfceed92204a435368f/rentSearchMetaData/{"SERPZILLA":"XXXXXXXXXXXX","cgeoip_country_iso_code":"RU"}' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer XXXXXXXXXXXX ' \
  --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX '

The response contains a list of sites where links can be purchased for the provided URL.

Key parameters in the response needed for link purchase:

  • pageId – the identifier of the found donor page
  • searchId, forceSeoWait, mosSites – additional technical parameters required for link purchase

To purchase links, use the API method Placement.createPlacementsRent:


  curl --location 'https://app.serpzilla.com/rest/Placement/rent/create/projectId/123456 \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer XXXXXXXXXXXX ' \
  --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX ' \
  --data '{
  	"forceSeoWait": 2,
  	"linkTypeId": 1,
  	"filterId": null,
  	"mosSites": "Yw==",
  	"pagesExtra": null,
  	"searchId": 213456,
  	"pages": [
      	{
          	"pageId": 312456,
          	"urlId": 412356,
          	"textId": 512346
      	}
  	]
  }'

The response will contain the IDs of the purchased links.

To view all project links, use the API method Placement.getProjectPlacementsLinks:


  curl --location --request POST https://app.serpzilla.com/rest/Project/placements/links?projectId=48872' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer XXXXXXXXXXXX ' \
  --header 'Cookie: AUTH_TICKET= XXXXXXXXXXXX ' \
  --data ''

Filtering the link list is also available (see the API method Placement.getProjectPlacementsLinks).