Skip to content
SearchJet
Updated October 1, 2026

API Endpoints Reference

This page lists every public SearchJet API endpoint in one place. All paths are relative to the base URL below. For parameters, request bodies and response fields, see the REST API Reference.

Base URL

https://app.searchjetengine.com/api/v1

The /api prefix is required. Paths without it, such as https://app.searchjetengine.com/v1/search, return 404.

Authentication

Authorization: Bearer YOUR_PUBLIC_KEY    # search and MCP
Authorization: Bearer YOUR_PRIVATE_KEY   # everything else
Accept: application/json
  • Public search key: search-only, safe in browsers. It's shown on the dashboard's Sites list as "Public Key".
  • Private key: 32 characters, created under Sites → API Keys and shown once. Keep it on your server.

Never put a key in the query string. See API Key Setup.

All endpoints

Method Path Key Purpose
GET /search Public Search your index. CORS is enabled, so browsers can call it.
POST /mcp/{publicKey} Public key in the URL path MCP server (JSON-RPC 2.0) with a search tool. Pro and above.
POST /index/bulk Private Add or replace documents
PATCH /index/bulk Private Merge fields into existing documents
DELETE /index/delete Private Delete by id, or by ids (max 500)
POST /index/delete-batch Private Delete by an ids array or a filter expression
GET /index/tasks/{taskUid} Private Check the status of an indexing or delete task
GET /index/count Private Number of documents in your index
GET /index/{id} Private Fetch one stored document
GET /search-analytics Private Top queries, zero-result queries, total searches, daily volume
POST /search-analytics Private Record search logs (one at a time, or up to 100 per batch)
POST /analytics/click Private Record a click on a search result
POST /ai/generate Private Queue an AI text generation from a prompt
GET /ai/status/{id} Private Get an AI generation result
GET /client-info Public or private Plan, public key and usage limits for the key's site

Every endpoint except /search and /mcp takes the private key. That includes analytics and click tracking, so call those from your own server, never from browser code.

Quick examples

Search (browser or server):

curl -G "https://app.searchjetengine.com/api/v1/search" \
  -H "Authorization: Bearer $SEARCHJET_PUBLIC_KEY" \
  -H "Accept: application/json" \
  --data-urlencode "q=getting started"

Index (server only):

curl -X POST "https://app.searchjetengine.com/api/v1/index/bulk" \
  -H "Authorization: Bearer $SEARCHJET_PRIVATE_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"documents": [{"id": "doc-123", "title": "Page Title", "url": "https://example.com/page"}]}'

Delete (server only):

curl -X DELETE "https://app.searchjetengine.com/api/v1/index/delete" \
  -H "Authorization: Bearer $SEARCHJET_PRIVATE_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"id": "doc-123"}'

Indexing and delete requests are asynchronous. Each one returns a task id, which you can poll with GET /index/tasks/{taskUid}. See the Index Management API.

Rate limits at a glance

  • Per client IP: 30 requests per minute on most routes. client-info and ai/generate allow 20 per minute, and index/tasks and ai/status allow 60. One counter is shared across all routes for the same IP.
  • Per private key: plan limits apply on top. Free allows 10 requests per minute, Pro 60, Growth 300 and Enterprise 1,000.
  • Monthly search quota: when it runs out, search returns 429 QUOTA_EXCEEDED.

Details: Rate Limits & Quotas.

See also

Was this article helpful?

Ready to add search to your project?

Start free. No credit card required. Deploy in under 10 minutes.