Content Studio - Imports
5 endpoints from the published OpenAPI import.
GET/api/v1/dashboard/content/imports
List imports for the current tenant
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
status | query | any | false | Filter by lifecycle status |
page | query | integer | false | |
page_size | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/imports' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/imports",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/imports", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/imports", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
POST/api/v1/dashboard/content/imports
Start an import job
Begin importing an external React/Vite/Tailwind site.
Provide exactly one of source_zip_url (a SpiderMedia-hosted upload) or source_github_url (a public repo). The job runs asynchronously; poll GET /imports/{import_id} for progress.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/content/imports' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"source": "figma_make",
"source_zip_url": "string",
"source_github_url": "string"
}'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/content/imports",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={"source": "figma_make", "source_zip_url": "string", "source_github_url": "string"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/imports", {
method: "POST",
headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
body: JSON.stringify({"source": "figma_make", "source_zip_url": "string", "source_github_url": "string"})
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{"source": "figma_make", "source_zip_url": "string", "source_github_url": "string"}`)
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/content/imports", body)
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
201 | Successful Response |
422 | Validation Error |
GET/api/v1/dashboard/content/imports/{import_id}
Get import status (and optionally the full manifest)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
import_id | path | string | true | |
include | query | any | false | Set to 'manifest' to embed the parsed ImportManifest in the response. |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
POST/api/v1/dashboard/content/imports/{import_id}/apply
Apply a parsed import onto the current tenant (Phase 11+12 gated)
Write the imported pages + components onto the current tenant.
Two-step flow:
- POST /imports/{id}/apply?dry_run=true → returns confirm_token + preview
- POST /imports/{id}/apply?confirm_token=<token> → consumes token, applies
The import row must be in status='parsed'. After a successful apply it transitions to status='applied' with pages_created / components_created counters populated.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
import_id | path | string | true | |
dry_run | query | boolean | false | When true, returns a preview envelope + confirm_token without mutating. |
confirm_token | query | any | false | Token obtained from a prior dry_run call. Consuming it performs the mutation. |
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}/apply' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}/apply",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}/apply", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/content/imports/{import_id}/apply", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
GET/api/v1/dashboard/projects/{project_id}/content/imports
List imports for the current tenant
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
status | query | any | false | Filter by lifecycle status |
page | query | integer | false | |
page_size | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/imports' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/imports",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/imports", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/imports", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |