Semantic search

Semantic search

Natural language search across districts, schools, and contacts using vector embeddings. Returns entities ranked by relevance to the query, with matched snippets from crawled content. **1 credit per search.**

POST
/semantic-search

Natural language search across districts, schools, and contacts using vector embeddings. Returns entities ranked by relevance to the query, with matched snippets from crawled content. 1 credit per search.

AuthorizationBearer <token>

API key (sk_live_... prefix). Generate keys in the UI under Settings > API Keys, then send it as Authorization: Bearer sk_live_...

In: header

Request Body

application/json

query*string

Natural language search query (min 2 characters)

Length2 <= length
entity_type*string

Type of entity to search

Value in"district" | "school" | "contact"
state?string

Filter by state abbreviation (e.g., CO, TX)

district_id?string

Filter contacts/schools by parent district UUID

school_id?string

Filter contacts by parent school UUID

limit?integer

Max results to return (default 50, max 500)

Range1 <= value <= 500

Response Body

application/json

application/json

application/json

curl -X POST "https://loading/api/v1/semantic-search" \  -H "Content-Type: application/json" \  -d '{    "query": "string",    "entity_type": "district"  }'
{
  "data": [
    {
      "property1": null,
      "property2": null
    }
  ],
  "relevance": {
    "property1": 0,
    "property2": 0
  },
  "matches": {
    "property1": [
      {
        "content": "string",
        "source_type": "string",
        "url": "string",
        "source_id": "string"
      }
    ],
    "property2": [
      {
        "content": "string",
        "source_type": "string",
        "url": "string",
        "source_id": "string"
      }
    ]
  },
  "coverage": {
    "embedded": -9007199254740991,
    "total": -9007199254740991
  },
  "_access_summary": {
    "total_results": -9007199254740991,
    "unlocked": -9007199254740991,
    "locked_processed": -9007199254740991,
    "locked_unprocessed": -9007199254740991,
    "unlock_all_cost": 0
  }
}
Empty
{
  "error": "string",
  "message": "string",
  "statusCode": -9007199254740991
}
{
  "error": "string",
  "message": "string",
  "balance": 0,
  "required": 0
}