SSpiderIQ
SSpiderIQ

Docs / api-reference/content-studio-imports

Content Studio - Imports

5 endpoints from the published OpenAPI import.

GET/api/v1/dashboard/content/imports

List imports for the current tenant

Parameters

NameInTypeRequiredDescription
statusqueryanyfalseFilter by lifecycle status
pagequeryintegerfalse
page_sizequeryintegerfalse
Try it
Query

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

StatusDescription
200Successful Response
422Validation 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

StatusDescription
201Successful Response
422Validation Error
GET/api/v1/dashboard/content/imports/{import_id}

Get import status (and optionally the full manifest)

Parameters

NameInTypeRequiredDescription
import_idpathstringtrue
includequeryanyfalseSet to 'manifest' to embed the parsed ImportManifest in the response.
Try it
Query

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

StatusDescription
200Successful Response
422Validation 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:

  1. POST /imports/{id}/apply?dry_run=true → returns confirm_token + preview
  2. 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

NameInTypeRequiredDescription
import_idpathstringtrue
dry_runquerybooleanfalseWhen true, returns a preview envelope + confirm_token without mutating.
confirm_tokenqueryanyfalseToken obtained from a prior dry_run call. Consuming it performs the mutation.
Try it
Query

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

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/dashboard/projects/{project_id}/content/imports

List imports for the current tenant

Parameters

NameInTypeRequiredDescription
statusqueryanyfalseFilter by lifecycle status
pagequeryintegerfalse
page_sizequeryintegerfalse
Try it
Query

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

StatusDescription
200Successful Response
422Validation Error