Create Project
curl --request POST \
--url https://createproject.api.velt.dev/ \
--header 'Content-Type: application/json' \
--header 'x-superflow-api-key: <x-superflow-api-key>' \
--header 'x-superflow-auth-token: <x-superflow-auth-token>' \
--data '
{
"data": {
"projectUrl": "<string>",
"projectName": "<string>",
"scriptAlreadyInstalled": true,
"runAgentChecks": true,
"agentIds": [
"<string>"
]
}
}
'import requests
url = "https://createproject.api.velt.dev/"
payload = { "data": {
"projectUrl": "<string>",
"projectName": "<string>",
"scriptAlreadyInstalled": True,
"runAgentChecks": True,
"agentIds": ["<string>"]
} }
headers = {
"x-superflow-api-key": "<x-superflow-api-key>",
"x-superflow-auth-token": "<x-superflow-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-superflow-api-key': '<x-superflow-api-key>',
'x-superflow-auth-token': '<x-superflow-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
projectUrl: '<string>',
projectName: '<string>',
scriptAlreadyInstalled: true,
runAgentChecks: true,
agentIds: ['<string>']
}
})
};
fetch('https://createproject.api.velt.dev/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://createproject.api.velt.dev/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'projectUrl' => '<string>',
'projectName' => '<string>',
'scriptAlreadyInstalled' => true,
'runAgentChecks' => true,
'agentIds' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-superflow-api-key: <x-superflow-api-key>",
"x-superflow-auth-token: <x-superflow-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://createproject.api.velt.dev/"
payload := strings.NewReader("{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-superflow-api-key", "<x-superflow-api-key>")
req.Header.Add("x-superflow-auth-token", "<x-superflow-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://createproject.api.velt.dev/")
.header("x-superflow-api-key", "<x-superflow-api-key>")
.header("x-superflow-auth-token", "<x-superflow-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://createproject.api.velt.dev/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-superflow-api-key"] = '<x-superflow-api-key>'
request["x-superflow-auth-token"] = '<x-superflow-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Created new project successfully.",
"data": {
"projectId": "7649736893876327"
}
}
}
REST APIs
Create Project
POST
/
Create Project
curl --request POST \
--url https://createproject.api.velt.dev/ \
--header 'Content-Type: application/json' \
--header 'x-superflow-api-key: <x-superflow-api-key>' \
--header 'x-superflow-auth-token: <x-superflow-auth-token>' \
--data '
{
"data": {
"projectUrl": "<string>",
"projectName": "<string>",
"scriptAlreadyInstalled": true,
"runAgentChecks": true,
"agentIds": [
"<string>"
]
}
}
'import requests
url = "https://createproject.api.velt.dev/"
payload = { "data": {
"projectUrl": "<string>",
"projectName": "<string>",
"scriptAlreadyInstalled": True,
"runAgentChecks": True,
"agentIds": ["<string>"]
} }
headers = {
"x-superflow-api-key": "<x-superflow-api-key>",
"x-superflow-auth-token": "<x-superflow-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-superflow-api-key': '<x-superflow-api-key>',
'x-superflow-auth-token': '<x-superflow-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
projectUrl: '<string>',
projectName: '<string>',
scriptAlreadyInstalled: true,
runAgentChecks: true,
agentIds: ['<string>']
}
})
};
fetch('https://createproject.api.velt.dev/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://createproject.api.velt.dev/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'projectUrl' => '<string>',
'projectName' => '<string>',
'scriptAlreadyInstalled' => true,
'runAgentChecks' => true,
'agentIds' => [
'<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-superflow-api-key: <x-superflow-api-key>",
"x-superflow-auth-token: <x-superflow-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://createproject.api.velt.dev/"
payload := strings.NewReader("{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-superflow-api-key", "<x-superflow-api-key>")
req.Header.Add("x-superflow-auth-token", "<x-superflow-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://createproject.api.velt.dev/")
.header("x-superflow-api-key", "<x-superflow-api-key>")
.header("x-superflow-auth-token", "<x-superflow-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://createproject.api.velt.dev/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-superflow-api-key"] = '<x-superflow-api-key>'
request["x-superflow-auth-token"] = '<x-superflow-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"projectUrl\": \"<string>\",\n \"projectName\": \"<string>\",\n \"scriptAlreadyInstalled\": true,\n \"runAgentChecks\": true,\n \"agentIds\": [\n \"<string>\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Created new project successfully.",
"data": {
"projectId": "7649736893876327"
}
}
}
Use this API to create a website project on Superflow. Creating the same URL twice resolves to the same project, so the call is safe to repeat.
With agent checks:
When
Common failures:
Endpoint
POST https://createproject.api.velt.dev/
Headers
string
required
Your API key.
string
required
Your Auth Token.
Body Example
Params
object
required
Show properties
Show properties
string
required
Project URL, for example
https://yourprojecturl.comstring
required
Project Name
boolean
Set
true when the Superflow script is already on the site, for example because your platform injects it for every project. The project is created as installed, and the duplicate-install check is skipped.boolean
Set
true to run AI agent checks against the site right after the project is created. Runs spend AI credits.string[]
Which agents to run when
runAgentChecks is true, up to 10. Defaults to the essential suite: spell-check, lorem-ipsum, lighthouse, broken-links, accessibility-checker. Ignored when runAgentChecks is not true.Example Requests
{
"data": {
"projectUrl": "https://yourprojecturl.com",
"projectName": "Your Project Name"
}
}
{
"data": {
"projectUrl": "https://yourprojecturl.com",
"projectName": "Your Project Name",
"runAgentChecks": true,
"agentIds": ["spell-check", "broken-links"]
}
}
Response
Success Response
{
"result": {
"status": "success",
"message": "Created new project successfully.",
"data": {
"projectId": "7649736893876327"
}
}
}
runAgentChecks is true, data also contains an agentChecks block. executionIds are runs that started (not finished), and failedAgentIds lists any requested agents that could not start. Agent check failures never fail the create.
{
"result": {
"status": "success",
"message": "Created new project successfully.",
"data": {
"projectId": "7649736893876327",
"agentChecks": {
"requested": ["spell-check", "broken-links"],
"executionIds": ["exec_abc123", "exec_def456"],
"failedAgentIds": []
}
}
}
}
Failure Response
{
"error": {
"message": "ERROR_MESSAGE",
"status": "INVALID_ARGUMENT"
}
}
| Status | Message | Meaning |
|---|---|---|
INVALID_ARGUMENT | Api key not found. / Auth token not found. | A required header is missing. |
INVALID_ARGUMENT | Invalid Api key. / Invalid Auth token. | The credentials do not match a workspace. |
INVALID_ARGUMENT | Project url not valid! | The URL could not be parsed. |
INVALID_ARGUMENT | SuperFlow project detected | The site already has Superflow installed. Pass scriptAlreadyInstalled: true if that is expected. |
ALREADY_EXISTS | A project already exists for this domain. | |
RESOURCE_EXHAUSTED | The workspace has reached its project limit. |
{
"result": {
"status": "success",
"message": "Created new project successfully.",
"data": {
"projectId": "7649736893876327"
}
}
}
Was this page helpful?
⌘I