Tools
Server-side tools: SEO and accessibility audits, DNS and TLS checks, image optimising, text tools and more. Each is real code, not a prompt. GET the index to see every tool and the fields it takes.
GET /businesses/{business}/tools
Every tool this business may run, with its fields.
Needs the tools:read scope.
Parameters
business integer, in path, required
The business id, from GET /businesses.
cURL
JavaScript
Python
Copy
curl "https://helstify.com/api/v1/businesses/60/tools" \
-H "Authorization: Bearer $HELSTIFY_KEY"
const res = await fetch("https://helstify.com/api/v1/businesses/60/tools", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.HELSTIFY_KEY}`,
},
});
const data = await res.json();
import os, requests
res = requests.get(
"https://helstify.com/api/v1/businesses/60/tools",
headers={"Authorization": f"Bearer {os.environ['HELSTIFY_KEY']}"},
)
print(res.json())
Response 200
{
"tools" : [
{
"slug" : "dns-lookup" ,
"name" : "DNS lookup" ,
"category" : "domains" ,
"what_it_does" : "Every record for a hostname, from public resolvers." ,
"fields" : {
"host" : {
"type" : "text" ,
"required" : true
}
}
}
]
}
GET /businesses/{business}/tools/history
Recent runs, newest first.
Needs the tools:read scope.
Parameters
business integer, in path, required
The business id, from GET /businesses.
limit integer, in query
Default 20.
cURL
JavaScript
Python
Copy
curl "https://helstify.com/api/v1/businesses/60/tools/history" \
-H "Authorization: Bearer $HELSTIFY_KEY"
const res = await fetch("https://helstify.com/api/v1/businesses/60/tools/history", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.HELSTIFY_KEY}`,
},
});
const data = await res.json();
import os, requests
res = requests.get(
"https://helstify.com/api/v1/businesses/60/tools/history",
headers={"Authorization": f"Bearer {os.environ['HELSTIFY_KEY']}"},
)
print(res.json())
Response 200
{
"runs" : [
{
"tool" : "seo-audit" ,
"summary" : "3 issues on /" ,
"at" : "2026-11-08T19:00:00Z"
}
]
}
GET /businesses/{business}/tools/{tool}
One tool and its fields.
Needs the tools:read scope.
Parameters
business integer, in path, required
The business id, from GET /businesses.
tool string, in path, required
The tool slug.
cURL
JavaScript
Python
Copy
curl "https://helstify.com/api/v1/businesses/60/tools/seo-audit" \
-H "Authorization: Bearer $HELSTIFY_KEY"
const res = await fetch("https://helstify.com/api/v1/businesses/60/tools/seo-audit", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.HELSTIFY_KEY}`,
},
});
const data = await res.json();
import os, requests
res = requests.get(
"https://helstify.com/api/v1/businesses/60/tools/seo-audit",
headers={"Authorization": f"Bearer {os.environ['HELSTIFY_KEY']}"},
)
print(res.json())
Response 200
{
"slug" : "seo-audit" ,
"name" : "SEO audit" ,
"fields" : {
"url" : {
"type" : "url" ,
"required" : true
}
}
}
POST /businesses/{business}/tools/{tool}
The body is the tool's fields.
Needs the tools:run scope.
Parameters
business integer, in path, required
The business id, from GET /businesses.
tool string, in path, required
The tool slug.
Body
url string
For example https://northwind.coffee/
cURL
JavaScript
Python
Copy
curl -X POST "https://helstify.com/api/v1/businesses/60/tools/seo-audit" \
-H "Authorization: Bearer $HELSTIFY_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://northwind.coffee/"}'
const res = await fetch("https://helstify.com/api/v1/businesses/60/tools/seo-audit", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HELSTIFY_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"url": "https://northwind.coffee/"
}),
});
const data = await res.json();
import os, requests
res = requests.post(
"https://helstify.com/api/v1/businesses/60/tools/seo-audit",
headers={"Authorization": f"Bearer {os.environ['HELSTIFY_KEY']}"},
json={
"url": "https://northwind.coffee/"
},
)
print(res.json())
Response 200
{
"ok" : true ,
"summary" : "3 issues on /" ,
"checks" : [
{
"status" : "warn" ,
"label" : "Meta description" ,
"detail" : "Missing on /"
}
],
"stats" : {
"words" : 412
}
}