The DAPA API allows you to fetch DA PA data for any domain. This API is designed to be simple and easy to use. Below are the details on how to use the API, including authentication, parameters, and response formats.
POST https://www.dapachecker.org/api/user/dapa-checker
curl --location 'https://www.dapachecker.org/api/user/dapa-checker' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"urls": [
"medium.com",
"google.com",
"https://www.editpad.org/tool/paraphrasing-tool"
]
}'
Authentication requires a valid API key. Include your API key in the request headers.
Authorization: Bearer YOUR_API_KEY
| Parameter | Type | Required | Description |
|---|---|---|---|
urls |
array | Yes |
List of URLs to check. Each URL should be a valid domain name; surrounding spaces are
trimmed. Any URL that is not in a valid format is skipped and reported back in the
skipped list instead of failing the request. The maximum number of URLs
depends on your plan and applies to the valid URLs only.
|
{
"urls": [
"medium.com",
"google.com",
"editpad.org"
]
}
{
"status": 200,
"message": "Success",
"data": [
{
"domain": "medium.com",
"site_da": 95,
"site_pa": 85,
"site_mr": 8.5,
"spam_score": 1
},
{
"domain": "google.com",
"site_da": 94,
"site_pa": 90,
"site_mr": 9,
"spam_score": 1
},
{
"domain": "editpad.org",
"site_da": 47,
"site_pa": 49,
"site_mr": 4.9,
"spam_score": 1
}
],
"summary": {
"submitted": 3,
"processed": 3,
"skipped": 0
},
"skipped": []
}
| Field | Type | Description |
|---|---|---|
data |
array | One record per processed URL, with its DA, PA, MozRank and Spam Score. |
summary.submitted |
integer | Number of URLs you sent in the request. |
summary.processed |
integer | Number of URLs returned in data. Only these are counted against your plan queries. |
summary.skipped |
integer | Number of URLs that were not processed. processed + skipped = submitted. |
skipped |
array | One entry per URL that was not processed. See Skipped URLs. |
{
"error": "Error message"
}
Or for authentication/subscription errors:
{
"type": "invalid_request",
"message": "you are not premium for this request"
}
Invalid API key in the request headers:
{
"type": "invalid_request",
"message": "incorrect API key provided"
}
When every URL in the request was skipped there is nothing to check, so the request fails with
422 and tells you why each one was skipped:
{
"status": 422,
"message": "No valid URL was provided. See the skipped list for details.",
"data": [],
"summary": {
"submitted": 1,
"processed": 0,
"skipped": 1
},
"skipped": [
{
"index": 0,
"url": "not a domain",
"reason": "invalid_url_format",
"message": "The URL is not in proper format. Please provide a valid URL with a domain extension (e.g., example.com, example.org)."
}
]
}
An invalid URL never fails the whole request. Every URL that could not be processed is left out of
data and listed in skipped instead, so a single bad entry in a batch of
50 still returns the results of the other 49. Skipped URLs are not counted against your plan
queries.
{
"status": 200,
"message": "Success",
"data": [
{
"domain": "google.com",
"site_da": 94,
"site_pa": 90,
"site_mr": 9,
"spam_score": 1
},
{
"domain": "editpad.org",
"site_da": 47,
"site_pa": 49,
"site_mr": 4.9,
"spam_score": 1
}
],
"summary": {
"submitted": 3,
"processed": 2,
"skipped": 1
},
"skipped": [
{
"index": 1,
"url": "not a domain",
"reason": "invalid_url_format",
"message": "The URL is not in proper format. Please provide a valid URL with a domain extension (e.g., example.com, example.org)."
}
]
}
| Field | Type | Description |
|---|---|---|
index |
integer | Position of the URL in the urls array you sent, starting at 0. |
url |
string | The URL as you sent it. Empty when the entry was not a text value. |
reason |
string | Machine readable code, one of the reasons listed below. |
message |
string | Readable explanation of the reason. |
| Reason | Description |
|---|---|
invalid_url_format |
The URL is not a domain with a valid extension (e.g. example.com,
https://example.org/page). Fix the URL before sending it again. |
empty_url |
The entry was an empty string or contained only spaces. |
lookup_failed |
The URL was valid but no data could be fetched for it this time. Send it again in a later request. |
rate_limit_reached |
Your per minute URL limit was reached, so this URL was not processed. Send it again in a later request. |
| Status | Error | Description |
|---|---|---|
| 401 | incorrect API key provided | The provided API key is invalid or missing. |
| 401 | you are not premium for this request | Your subscription plan doesn't allow this request or has expired. |
| 422 | Validation Error | The urls parameter is missing or is not an array. Individual invalid URLs
do not cause this error, they are returned in skipped. |
| 422 | No valid URL was provided | Every URL in the request was skipped, so there was nothing to check. The
skipped list explains why for each one. |
| 422 | Limit Exceeded | The valid urls in the request exceed the maximum allowed urls limit for your plan. |
| 429 | Too Many Requests | The rate limit of requests per minute depends on your plan. |
| 500 | An unexpected error occurred | Internal server error. |
For technical support or questions about the API, please Contact Us.
Guest user Limited to 5-DAPA or 2-DRUR at once only
Get complete access to in-depth Domain Authority (DA) and Page Authority (PA) metrics.
Feel free to share your feedback and suggestions