POST /search
Find ranked capabilities from a natural-language query. Discover is free. Results include fail-closed verification evidence and execution restrictions; clients must not treat any status other than verified as verified. Results may include expected_cost and billing_rule so clients can estimate a later Call.
REST API overview · OpenAPI JSON · OpenAPI YAML
| Stability | Authentication | Cost | Operation ID |
|---|---|---|---|
| Published | Bearer API key | Free | search_api_v1_search_post |
This operation has no path or query parameters.
Schema: PublicSearchRequest
| Name | Required | Type | Description |
|---|---|---|---|
query | Yes | string | Natural-language capability query or an exact tool ID for deterministic lookup. |
limit | No | integer | Maximum number of ranked results to return. |
session_id | No | string | Optional tracking and pricing-context identifier. It does not promise a cache hit. |
view | No | "routing" | "full" | Response projection. routing returns compact routing cards (tool_id, capability, cost_class, reliability, as_of_support) plus the required verification and restriction contract; full or omitted returns the complete result shape. |
lang | No | "zh" | "en" | Response language. When omitted the service negotiates from the Accept-Language header. |
curl --request POST \
--url "https://qveris.ai/api/v1/search" \
--header "Authorization: Bearer $QVERIS_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"query": "openweathermap.weather.execute.v1",
"limit": 10,
"session_id": "sess_7Q9m"
}'
const response = await fetch("https://qveris.ai/api/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.QVERIS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"query": "openweathermap.weather.execute.v1",
"limit": 10,
"session_id": "sess_7Q9m"
}),
})
if (!response.ok) throw new Error(`QVeris request failed: ${response.status}`)
console.log(await response.json())
import json
import os
import requests
response = requests.request(
"POST",
"https://qveris.ai/api/v1/search",
headers={"Authorization": f"Bearer {os.environ['QVERIS_API_KEY']}"},
json=json.loads(r'''{
"query": "openweathermap.weather.execute.v1",
"limit": 10,
"session_id": "sess_7Q9m"
}'''),
timeout=30,
)
response.raise_for_status()
print(response.json())
| Status | Meaning | Schema |
|---|---|---|
200 | Successful Response | PublicSearchResponse |
401 | Unauthorized | PublicApiError |
402 | Insufficient credits | PublicSearchResponse |
429 | Too Many Requests | PublicApiError |
{
"query": "openweathermap.weather.execute.v1",
"search_id": "srch_01HZX9QK7J3M9T",
"total": 1,
"results": [
{
"tool_id": "openweathermap.weather.execute.v1",
"name": "Current Weather",
"description": "Get current weather data for a city.",
"provider_name": "OpenWeatherMap",
"params": [
{
"name": "q",
"type": "string",
"required": true,
"description": "Location query accepted by the weather provider."
}
],
"expected_cost": "5 credits per successful request",
"billing_rule": {
"unit": "request",
"amount_credits": 5
},
"stats": {
"avg_execution_time_ms": 210.7,
"success_rate": 0.982
},
"verification_status": "unverified",
"verification": {
"status": "unverified",
"policy_version": "catalog-verification-v1",
"required_checks": [
"schema",
"authentication",
"description_contract",
"provider_identity",
"permissions",
"freshness",
"live_check"
],
"checks": [
{
"name": "schema",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": null
},
{
"name": "authentication",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": "authentication_path_missing"
},
{
"name": "description_contract",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": null
},
{
"name": "provider_identity",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": "provider_id_missing"
},
{
"name": "permissions",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": null
},
{
"name": "freshness",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": "expires_at_missing"
},
{
"name": "live_check",
"status": "missing",
"checked_at": null,
"evidence_digest": null,
"reason": "live_check_samples_missing"
}
],
"verified_at": null,
"expires_at": null,
"test_run_digest": null,
"quality_issues": [
"live_check_samples_missing",
"authentication_path_missing",
"provider_id_missing",
"permission_disclosure_incomplete",
"verified_at_missing",
"expires_at_missing",
"test_run_digest_missing",
"verification_status_missing"
]
},
"execution_restrictions": {
"callable": false,
"technical": "unknown",
"authentication": "unknown",
"eligibility": "unknown",
"license": "unknown",
"regions": {
"allow": [],
"deny": []
},
"region_status": "unknown",
"commercial_use": "unknown",
"freshness": "unknown",
"price_certainty": "estimated",
"data_as_of": null,
"warnings": [
"Region restrictions are malformed or contradictory."
],
"confidence": 0,
"allowed_actions": [
"discover",
"inspect",
"probe"
],
"blocked_actions": [
"execute"
],
"next_action": "inspect",
"retryable": true
}
}
],
"elapsed_time_ms": 245.6,
"remaining_credits": 995
}
POST Inspect capabilities · POST Probe a capability · POST Call a capability
Was this page helpful?