SEO Reports

Get a comprehensive SEO report details of your Projects
Notes
Expert level
The API key should be sent as a Bearer token in the Authorization header of the request. Get your API key.


List
Get the comprehensive report details of all your projects

API endpoint:

GET
https://webzender.com/api/v1/reports

Request example:

curl --location --request GET 'https://webzender.com/api/v1/reports' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


You can customize the API by adding this Parameters

Parameter
Type
Description
search
optional string
A search query, searches from the Url and Project name.
project
optional string
A select query, select reports from a project name.
result
optional string
A select query, select reports from the report result. Possible values are: good for Good, decent for Decent, bad for Bad.
sort_by
optional string
Sort by. Possible values are: id for Date created, generated_at for Date generated, url for URL, result for Result. Defaults to: id.
sort
optional string
Sort. Possible values are: desc for Descending, asc for Ascending. Defaults to: desc.
per_page
optional int
Results per page. Possible values are: 10, 25, 50, 100. Defaults to: 100.


Request example:

search
curl --location --request GET 'https://webzender.com/api/v1/reports?search=example'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
Note: search only search for Project Name or report url

project
curl --location --request GET 'https://webzender.com/api/v1/reports?project=example.com'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
Note: Project Name must be correct and complete. the example will
     fetch a report details for a project named example.com


result
curl --location --request GET 'https://webzender.com/api/v1/reports?result=good'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


sort_by
curl --location --request GET 'https://webzender.com/api/v1/reports?sort_by=created_at'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


sort
curl --location --request GET 'https://webzender.com/api/v1/reports?sort=desc'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


per_page
curl --location --request GET 'https://webzender.com/api/v1/reports?per_page=25'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


You can combine it e.g
curl --location --request GET 'https://webzender.com/api/v1/reports?search=good&sort_by=created_at&sort=desc&per_page=25'
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


This Explains:
 search from reports where project name or report url has good, sort by date_created, display
in descending order and paginate by 25 results per page







Show
Get the comprehensive report details for a single project

API endpoint:

GET
https://webzender.com/api/v1/reports/{id}
Where {id} is the report id e.g. 12


Request example:

curl --location --request GET 'https://webzender.com/api/v1/reports/{id}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'


Response example:

{
  "data": {
    "id": 18,
    "url": "example.com",
    "project": "example.com",
    "result": 71,
    "results": {
      "title": {
        "passed": true,
        "importance": "high",
        "value": "Example Domain"
      },
      "meta_description": {
        "passed": false,
        "importance": "high",
        "value": null,
        "errors": {
          "missing": null
        }
      },
      "headings": {
        "passed": false,
        "importance": "high",
        "value": {
          "h1": [
            "Example Domain"
          ]
        },
        "errors": {
          "duplicate": null
        }
      },
      "content_keywords": {
        "passed": true,
        "importance": "high",
        "value": [
          "example",
          "domain"
        ]
      },
      "image_keywords": {
        "passed": true,
        "importance": "high",
        "value": null
      },
      "image_format": {
        "passed": true,
        "importance": "medium",
        "value": [
          "AVIF",
          "WebP"
        ]
      },
      "in_page_links": {
        "passed": true,
        "importance": "medium",
        "value": {
          "Externals": [
            {
              "url": "https://www.iana.org/domains/example",
              "text": "More information..."
            }
          ]
        }
      },
      "load_time": {
        "passed": true,
        "importance": "medium",
        "value": 1.306694
      },
      "page_size": {
        "passed": true,
        "importance": "medium",
        "value": 648
      },
      "http_requests": {
        "passed": true,
        "importance": "medium",
        "value": []
      },
      "defer_javascript": {
        "passed": true,
        "importance": "low",
        "value": null
      },
      "dom_size": {
        "passed": true,
        "importance": "low",
        "value": 13
      },
      "text_compression": {
        "passed": true,
        "importance": "high",
        "value": 648
      },
      "structured_data": {
        "passed": false,
        "importance": "medium",
        "value": [],
        "errors": {
          "missing": null
        }
      },
      "meta_viewport": {
        "passed": true,
        "importance": "medium",
        "value": "width=device-width, initial-scale=1"
      },
      "https_encryption": {
        "passed": false,
        "importance": "high",
        "value": "http://example.com/",
        "errors": {
          "missing": "https"
        }
      },
      "seo_friendly_url": {
        "passed": true,
        "importance": "high",
        "value": "http://example.com/"
      },
      "language": {
        "passed": false,
        "importance": "medium",
        "value": null,
        "errors": {
          "missing": null
        }
      },
      "favicon": {
        "passed": false,
        "importance": "medium",
        "value": null,
        "errors": {
          "missing": null
        }
      },
      "content_length": {
        "passed": false,
        "importance": "low",
        "value": 28,
        "errors": {
          "too_few": {
            "min": "500"
          }
        }
      },
      "text_html_ratio": {
        "passed": true,
        "importance": "low",
        "value": 15
      },
      "charset": {
        "passed": true,
        "importance": "medium",
        "value": "utf-8"
      },
      "deprecated_html_tags": {
        "passed": true,
        "importance": "low",
        "value": null
      },
      "404_page": {
        "passed": true,
        "importance": "high",
        "value": "http://example.com/404-da8c10eb22db03d8be76aab6e1b3d7d0"
      },
      "noindex": {
        "passed": true,
        "importance": "high",
        "value": null
      },
      "robots": {
        "passed": true,
        "importance": "high",
        "value": null
      },
      "sitemap": {
        "passed": false,
        "importance": "low",
        "value": [],
        "errors": {
          "failed": null
        }
      },
      "mixed_content": {
        "passed": true,
        "importance": "medium",
        "value": null
      },
      "server_signature": {
        "passed": false,
        "importance": "medium",
        "value": [
          "ECS (nyb/1D07)"
        ],
        "errors": {
          "failed": null
        }
      },
      "unsafe_cross_origin_links": {
        "passed": true,
        "importance": "medium",
        "value": null
      },
      "plaintext_email": {
        "passed": true,
        "importance": "low",
        "value": null
      },
      "social": {
        "passed": false,
        "importance": "low",
        "value": [],
        "errors": {
          "missing": null
        }
      },
      "inline_css": {
        "passed": true,
        "importance": "low",
        "value": null
      }
    },
    "privacy": 1,
    "password": false,
    "generated_at": "2023-07-13T13:50:21.000000Z",
    "created_at": "2023-07-13T13:50:21.000000Z",
    "updated_at": "2023-07-13T13:50:21.000000Z"
  },
  "status": 200
}




Store
Generate a new report by entering a weblink and save it via our API

API endpoint:

POST
https://webzender.com/api/v1/reports


Request example:

curl --location --request POST 'https://webzender.com/api/v1/reports' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'url={url}'
You can customize the API by adding this Parameters

Parameter
Type
Description
url
required string
The webpage's URL.
privacy
optional integer
Report page privacy. Possible values are: 0 for Public, 1 for Private, 2 for Password. Defaults to: 1.
password
optional string
The password for the report page. Only works with privacy set to 2.


Request example:

url
curl --location --request POST 'https://webzender.com/api/v1/reports' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'url={https://example.com}'

privacy
curl --location --request POST 'https://webzender.com/api/v1/reports' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'url={https://example.com}'\
--data-urlencode 'privacy=0' 

password
curl --location --request POST 'https://webzender.com/api/v1/reports'\
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'url=https://example.com' \
--data-urlencode 'privacy=2' \
--data-urlencode 'password=pa$$word23'

Note: the privacy parameter is set to 2






Update
Edit and update a report via API

API endpoint:

PUT PATCH
https://webzender.com/api/v1/reports/{id}
Where {id} is the report id e.g. 12


Request example:

curl --location --request PUT 'https://webzender.com/api/v1/reports/{id}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'
You can customize the API by adding this Parameters

Parameter
Type
Description
privacy
optional integer
Report page privacy. Possible values are: 0 for Public, 1 for Private, 2 for Password.
password
optional string
The password for the report page. Only works with privacy set to 2.


Request example:

privacy
curl --location --request PUT 'https://webzender.com/api/v1/reports/{id}?privacy=0' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'

password
curl --location --request PUT 'https://webzender.com/api/v1/reports/{id}?privacy=2&password=pa$$word23' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'

Note: the privacy parameter is set to 2






Delete

API endpoint:

DELETE
https://webzender.com/api/v1/reports/{id}
Where {id} is the report id e.g. 12


Request example:

curl --location --request DELETE 'https://webzender.com/api/v1/reports/{id}' \
--header 'Authorization: Bearer {api_key}'