curl --request POST \
--url https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"url": "https://example.com",
"output_schema": {
"type": "object",
"required": [
"company_name"
],
"properties": {
"company_name": {
"type": "string",
"description": "The company's public name."
}
}
}
}
EOFimport requests
url = "https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data"
payload = {
"url": "https://example.com",
"output_schema": {
"type": "object",
"required": ["company_name"],
"properties": { "company_name": {
"type": "string",
"description": "The company's public name."
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com',
output_schema: {
type: 'object',
required: ['company_name'],
properties: {company_name: {type: 'string', description: 'The company\'s public name.'}}
}
})
};
fetch('https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data', 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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data",
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([
'url' => 'https://example.com',
'output_schema' => [
'type' => 'object',
'required' => [
'company_name'
],
'properties' => [
'company_name' => [
'type' => 'string',
'description' => 'The company\'s public name.'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data"
payload := strings.NewReader("{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "<string>",
"data": {},
"metadata": {
"numUrls": 1,
"numFailed": 1,
"numBlocked": 1,
"numSkipped": 1,
"numSucceeded": 1,
"maxCrawlDepth": 1
},
"key_metadata": {
"credits_consumed": 1,
"credits_remaining": 1
},
"urls_analyzed": [
"<string>"
]
}Extract Structured Web Data
curl --request POST \
--url https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"url": "https://example.com",
"output_schema": {
"type": "object",
"required": [
"company_name"
],
"properties": {
"company_name": {
"type": "string",
"description": "The company's public name."
}
}
}
}
EOFimport requests
url = "https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data"
payload = {
"url": "https://example.com",
"output_schema": {
"type": "object",
"required": ["company_name"],
"properties": { "company_name": {
"type": "string",
"description": "The company's public name."
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com',
output_schema: {
type: 'object',
required: ['company_name'],
properties: {company_name: {type: 'string', description: 'The company\'s public name.'}}
}
})
};
fetch('https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data', 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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data",
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([
'url' => 'https://example.com',
'output_schema' => [
'type' => 'object',
'required' => [
'company_name'
],
'properties' => [
'company_name' => [
'type' => 'string',
'description' => 'The company\'s public name.'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data"
payload := strings.NewReader("{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <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://api.aisa.one/apis/v1/context-dev/extract-structured-web-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com\",\n \"output_schema\": {\n \"type\": \"object\",\n \"required\": [\n \"company_name\"\n ],\n \"properties\": {\n \"company_name\": {\n \"type\": \"string\",\n \"description\": \"The company's public name.\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"url": "<string>",
"data": {},
"metadata": {
"numUrls": 1,
"numFailed": 1,
"numBlocked": 1,
"numSkipped": 1,
"numSucceeded": 1,
"maxCrawlDepth": 1
},
"key_metadata": {
"credits_consumed": 1,
"credits_remaining": 1
},
"urls_analyzed": [
"<string>"
]
}Request contract
- Method and path: POST /apis/v1/context-dev/extract-structured-web-data
- Availability: enabled
- Request URL template:
https://api.aisa.one/apis/v1/context-dev/extract-structured-web-data - Runtime facts: 3068b7678674e2539daed47d533143c7d5bf21072a81e6aac34d7bd71ed57eb3
{
"operationId": "context-dev.extract-structured-web-data",
"method": "POST",
"path": "/apis/v1/context-dev/extract-structured-web-data",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"url",
"output_schema"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"examples": [
"https://example.com"
],
"minLength": 1,
"description": "Starting HTTP or HTTPS website URL to crawl."
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"maxItems": 20,
"description": "Usage-tracking tags. Provide at most 20 tags of 1-50 characters each."
},
"max_depth": {
"type": "integer",
"minimum": 0,
"description": "Maximum link depth from the starting URL. Use 0 to analyze only the starting page; omit for no crawl-depth limit."
},
"max_pages": {
"type": "integer",
"default": 5,
"maximum": 50,
"minimum": 1,
"description": "Maximum pages to analyze (1-50). Higher values increase the price."
},
"fact_check": {
"type": "boolean",
"default": false,
"description": "Require every returned value to be grounded in page content. Unsupported fields are returned as null or empty instead of inferred."
},
"instructions": {
"type": "string",
"maxLength": 2000,
"description": "Optional extraction guidance or field interpretation, up to 2000 characters."
},
"output_schema": {
"type": "object",
"examples": [
{
"type": "object",
"required": [
"company_name"
],
"properties": {
"company_name": {
"type": "string",
"description": "The company's public name."
}
}
}
],
"description": "JSON Schema describing the object to extract. Add descriptions to non-obvious properties so the extractor can interpret them correctly.",
"additionalProperties": true
},
"stop_after_ms": {
"type": "integer",
"default": 80000,
"maximum": 110000,
"minimum": 10000,
"description": "Soft crawl time budget in milliseconds (10000-110000)."
},
"follow_subdomains": {
"type": "boolean",
"default": false,
"description": "Follow links on subdomains of the starting domain."
}
}
}
}
}
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "response_units",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"default_request_estimate_usd": 0.0103,
"estimate_source": "profile_seed",
"evidence_source": "response_body",
"maximum_units": 10000000,
"unit": "provider_credit",
"unit_rate_usd": 1e-06
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Usage-based billing; Default request estimate: $0.0103 USD (not a fixed price). Declared unit rate: $0.000001 USD per provider_credit. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.0103
- Declared unit rate (USD): 1e-06
- Billing unit: provider_credit
- Cost contract: response_units
- Published reference multiplier: 1.0
- Declared maximum count/units: 10000000
- Settlement evidence source: response_body
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Starting HTTP or HTTPS website URL to crawl.
1"https://example.com"
JSON Schema describing the object to extract. Add descriptions to non-obvious properties so the extractor can interpret them correctly.
{
"type": "object",
"required": ["company_name"],
"properties": {
"company_name": {
"type": "string",
"description": "The company's public name."
}
}
}
Usage-tracking tags. Provide at most 20 tags of 1-50 characters each.
201 - 50Maximum link depth from the starting URL. Use 0 to analyze only the starting page; omit for no crawl-depth limit.
x >= 0Maximum pages to analyze (1-50). Higher values increase the price.
1 <= x <= 50Require every returned value to be grounded in page content. Unsupported fields are returned as null or empty instead of inferred.
Optional extraction guidance or field interpretation, up to 2000 characters.
2000Soft crawl time budget in milliseconds (10000-110000).
10000 <= x <= 110000Follow links on subdomains of the starting domain.