Import data from a website URL
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/data/import/website \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Website Content",
"url": "https://www.example.com/sitemap.xml",
"description": "Crawled content from company website",
"depth": 1
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/data/import/website"
payload = {
"name": "Website Content",
"url": "https://www.example.com/sitemap.xml",
"description": "Crawled content from company website",
"depth": 1
}
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({
name: 'Website Content',
url: 'https://www.example.com/sitemap.xml',
description: 'Crawled content from company website',
depth: 1
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/data/import/website', 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://{subdomain}.mihu.ai/api/v1/data/import/website",
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([
'name' => 'Website Content',
'url' => 'https://www.example.com/sitemap.xml',
'description' => 'Crawled content from company website',
'depth' => 1
]),
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://{subdomain}.mihu.ai/api/v1/data/import/website"
payload := strings.NewReader("{\n \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\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://{subdomain}.mihu.ai/api/v1/data/import/website")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/data/import/website")
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 \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Website crawling initiated",
"data": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"path_url": "<string>",
"path_ext": "<string>",
"status": 123,
"process": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"message": "The name field is required. | The url field is required.",
"data": [
"<unknown>"
]
}{
"success": false,
"message": "An unexpected error occurred",
"data": [
"<unknown>"
]
}Tables
Import data from a website URL
Crawls a website URL and imports discovered page content into a knowledge source. Use this when an agent should answer from public documentation, help centers, service pages, or product pages. Crawling is limited in depth, and processing continues asynchronously after the response.
POST
/
api
/
v1
/
data
/
import
/
website
Import data from a website URL
curl --request POST \
--url https://{subdomain}.mihu.ai/api/v1/data/import/website \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Website Content",
"url": "https://www.example.com/sitemap.xml",
"description": "Crawled content from company website",
"depth": 1
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/data/import/website"
payload = {
"name": "Website Content",
"url": "https://www.example.com/sitemap.xml",
"description": "Crawled content from company website",
"depth": 1
}
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({
name: 'Website Content',
url: 'https://www.example.com/sitemap.xml',
description: 'Crawled content from company website',
depth: 1
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/data/import/website', 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://{subdomain}.mihu.ai/api/v1/data/import/website",
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([
'name' => 'Website Content',
'url' => 'https://www.example.com/sitemap.xml',
'description' => 'Crawled content from company website',
'depth' => 1
]),
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://{subdomain}.mihu.ai/api/v1/data/import/website"
payload := strings.NewReader("{\n \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\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://{subdomain}.mihu.ai/api/v1/data/import/website")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/data/import/website")
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 \"name\": \"Website Content\",\n \"url\": \"https://www.example.com/sitemap.xml\",\n \"description\": \"Crawled content from company website\",\n \"depth\": 1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Website crawling initiated",
"data": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"type": "<string>",
"path_url": "<string>",
"path_ext": "<string>",
"status": 123,
"process": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"success": false,
"message": "The name field is required. | The url field is required.",
"data": [
"<unknown>"
]
}{
"success": false,
"message": "An unexpected error occurred",
"data": [
"<unknown>"
]
}Authorizations
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"
Body
application/json
Response
Website crawling initiated
Indicates whether the request completed successfully. True for successful responses; false for documented error responses.
Example:
true
Human-readable response message. Safe to display in logs or simple client notifications; use structured fields for program logic.
Example:
"Website crawling initiated"
Show child attributes
Show child attributes
⌘I