SpiderFlow Forms
3 endpoints from the published OpenAPI import.
POST/api/v1/forms/places-autocomplete
Google Places Autocomplete proxy
Forward the typeahead query to Google Places and return normalised predictions.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/forms/places-autocomplete' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"query": "string",
"session_token": "string",
"country_bias": "string",
"types": [
"string"
]
}'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/forms/places-autocomplete",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={"query": "string", "session_token": "string", "country_bias": "string", "types": ["string"]},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/forms/places-autocomplete", {
method: "POST",
headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
body: JSON.stringify({"query": "string", "session_token": "string", "country_bias": "string", "types": ["string"]})
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{"query": "string", "session_token": "string", "country_bias": "string", "types": ["string"]}`)
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/forms/places-autocomplete", 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 |
|---|---|
200 | Successful Response |
429 | Per-IP rate limit exceeded. |
502 | Upstream Places API error. |
503 | Places integration not configured for this deployment. |
422 | Validation Error |
POST/api/v1/forms/places-details
Google Places Details proxy
Fetch full Place Details for the given place_id. Called by the renderer when a user picks a suggestion.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/forms/places-details' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"place_id": "string",
"session_token": "string"
}'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/forms/places-details",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={"place_id": "string", "session_token": "string"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/forms/places-details", {
method: "POST",
headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
body: JSON.stringify({"place_id": "string", "session_token": "string"})
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{"place_id": "string", "session_token": "string"}`)
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/forms/places-details", 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 |
|---|---|
200 | Successful Response |
404 | Place id not found. |
429 | Per-IP rate limit exceeded. |
502 | Upstream Places API error. |
503 | Places integration not configured for this deployment. |
422 | Validation Error |
GET/api/v1/forms/{flow_id}
Fetch a form flow descriptor (agent-facing)
Returns a minimal {flow_id, kind, name, status} descriptor for the given flow_id. Intended for agents (Claude Code, MCP tools) to discover a flow's kind before driving form-specific tooling. On wrong kind, returns 409 with suggested_url=/api/v1/booking/<id>. On unknown id, returns 404 RESOURCE_NOT_FOUND.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
flow_id | path | string | true |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/forms/{flow_id}' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/forms/{flow_id}",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/forms/{flow_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/forms/{flow_id}", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
404 | Flow not found (RESOURCE_NOT_FOUND envelope) |
409 | Flow is not a form (WRONG_FLOW_KIND envelope) |
422 | Validation Error |