Install
openclaw skills install xcrawl-searchUse this skill for XCrawl search tasks, including keyword search request design, location and language controls, result analysis, and follow-up crawl or scra...
openclaw skills install xcrawl-searchThis skill uses XCrawl Search API to retrieve query-based results. Default behavior is raw passthrough: return upstream API response bodies as-is.
Before using this skill, the user must create a local config file and write XCRAWL_API_KEY into it.
Path: ~/.xcrawl/config.json
{
"XCRAWL_API_KEY": "<your_api_key>"
}
Read API key from local config file only. Do not require global environment variables.
Using XCrawl APIs consumes credits.
If the user does not have an account or available credits, guide them to register at https://dash.xcrawl.com/.
After registration, they can activate the free 1000 credits plan before running requests.
Request runtime permissions for curl and node only.
Do not request Python, shell helper scripts, or other runtime permissions.
POST /v1/searchhttps://run.xcrawl.comAuthorization: Bearer <XCRAWL_API_KEY>API_KEY="$(node -e "const fs=require('fs');const p=process.env.HOME+'/.xcrawl/config.json';const k=JSON.parse(fs.readFileSync(p,'utf8')).XCRAWL_API_KEY||'';process.stdout.write(k)")"
curl -sS -X POST "https://run.xcrawl.com/v1/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{"query":"AI web crawler API","location":"US","language":"en","limit":20}'
node -e '
const fs=require("fs");
const apiKey=JSON.parse(fs.readFileSync(process.env.HOME+"/.xcrawl/config.json","utf8")).XCRAWL_API_KEY;
const body={query:"web scraping pricing",location:"DE",language:"de",limit:30};
fetch("https://run.xcrawl.com/v1/search",{
method:"POST",
headers:{"Content-Type":"application/json",Authorization:`Bearer ${apiKey}`},
body:JSON.stringify(body)
}).then(async r=>{console.log(await r.text());});
'
POST https://run.xcrawl.com/v1/searchContent-Type: application/jsonAuthorization: Bearer <api_key>| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | Search query |
location | string | No | US | Location (country/city/region name or ISO code; best effort) |
language | string | No | en | Language (ISO 639-1) |
limit | integer | No | 10 | Max results (1-100) |
| Field | Type | Description |
|---|---|---|
search_id | string | Task ID |
endpoint | string | Always search |
version | string | Version |
status | string | completed |
query | string | Search query |
data | object | Search result data |
started_at | string | Start time (ISO 8601) |
ended_at | string | End time (ISO 8601) |
total_credits_used | integer | Total credits used |
data notes from current API reference:
credits_used and credits_detailPOST /v1/search.Return:
POST /v1/search)request_payload used for the requestDo not generate summaries unless the user explicitly requests a summary.