Add powerful search to any website with one HTTP request to the SearchJet REST API — no SDK needed. React autocomplete, headless Next.js search, and vanilla JS site search — with a free API key in 60 seconds.
// No SDK, no npm install — one HTTP request
const res = await fetch(
'https://app.searchjetengine.com/api/v1/search?q=laptop+deals&limit=10',
{ headers: { Authorization: 'Bearer 8e371cadae7aefedd3c99e41835df7ad709a27128c2a2d0c10ac408b1124c5a7' } }
);
const { results, total } = await res.json();
console.log(total, results); // results is the array of hitsOne HTTP request. Instant search on any website.
Get an API key, then test it against the live SearchJet index right here — no IDE, no npm install, no setup.
Enter your email and we'll inject a working key straight into the sandbox below. No credit card. 10,000 free searches/month.
const params = new URLSearchParams({ q: 'wireless headphones', limit: '5' });
// Search as you type → instant results, no SDK needed
const res = await fetch(`https://app.searchjetengine.com/api/v1/search?${params}`, {
headers: { Authorization: 'Bearer 8e371cadae7aefedd3c99e41835df7ad709a27128c2a2d0c10ac408b1124c5a7' }
});
console.log(await res.json()); // ← live JSON below{
// Run a query above to see the live
// JSON response from the SearchJet API.
// Typo-tolerant, sub-150ms.
}Click a framework to see a live preview and copy-paste code that runs out of the box
The UI the code below produces — search-as-you-type, backed by the live SearchJet product index.
// App.jsx — copy-paste, no SDK needed
import { useEffect, useState } from 'react';
const SEARCH_URL = 'https://app.searchjetengine.com/api/v1/search';
export default function App() {
const [query, setQuery] = useState('');
const [hits, setHits] = useState([]);
useEffect(() => {
if (!query.trim()) return setHits([]);
const controller = new AbortController();
const timer = setTimeout(async () => {
const res = await fetch(`${SEARCH_URL}?q=${encodeURIComponent(query)}&limit=10`, {
headers: { Authorization: 'Bearer ' },
signal: controller.signal,
});
const { results } = await res.json(); // results is the array of hits
setHits(results);
}, 150); // debounce keystrokes
return () => { clearTimeout(timer); controller.abort(); };
}, [query]);
return (
<div>
<input value={query} onChange={(e) => setQuery(e.target.value)} placeholder="Search products…" />
{hits.map((hit) => (
<a key={hit.id} href={hit.url} className="block border-b border-zinc-800 p-3 hover:bg-zinc-800/60">
<h4 className="font-semibold text-on-surface">{hit.title}</h4>
{hit.excerpt && <p className="text-sm text-zinc-500">{hit.excerpt}</p>}
</a>
))}
</div>
);
}Click YOUR_API_KEY in the code to generate your free key — it's injected instantly.
Built with modern web development best practices
Works with React, Vue, Angular, Svelte, or plain JavaScript. Use it anywhere you can make an HTTP request.
No SDK needed — one HTTP request with fetch, axios, or any other HTTP client.
Copy-paste fetch examples run in a plain inline <script> or inside your bundler. Nothing to install.
Nothing to download or bundle — just a fetch call and a JSON response.
The examples use plain inputs and lists, so they fit any responsive layout you already have.
Headless by default. The API returns JSON — render results with your own components and complete control.
Live, interactive demos with copy-paste code for each pattern
import { useEffect, useState } from 'react';
const SEARCH_URL = 'https://app.searchjetengine.com/api/v1/search';
function App() {
const [query, setQuery] = useState('');
const [suggestions, setSuggestions] = useState([]);
useEffect(() => {
if (!query.trim()) return setSuggestions([]);
const timer = setTimeout(async () => { // debounce: avoid hammering the API
const res = await fetch(`${SEARCH_URL}?q=${encodeURIComponent(query)}&limit=6`, {
headers: { Authorization: 'Bearer your_search_api_key' },
});
const { results } = await res.json(); // results is the array of hits
setSuggestions(results);
}, 150);
return () => clearTimeout(timer);
}, [query]);
return (
<div>
<input value={query} onChange={(e) => setQuery(e.target.value)} placeholder="Search docs & products…" />
<ul>
{suggestions.map((hit) => (
<li key={hit.id} onClick={() => (window.location.href = hit.url)}>{hit.title}</li>
))}
</ul>
</div>
);
}Copy-paste ready. Swap your_search_api_key with the free key from the widget above.
From API key to live search in minutes
Generate a free search API key in 60 seconds
Send GET /search with your key — the key selects the index
Loop over the results array with your own UI
Style and configure to match your brand
Copy-paste, framework-specific guides for the exact search pattern you're building today.
Build a search-as-you-type autocomplete dropdown in React with debouncing, keyboard navigation, and highlight.
Read the guideSearch API calls from App Router and Server Components — SSR-safe, edge ready, no hydration issues.
Read the guideOne small inline script, no framework needed. Plain-JavaScript fetch search with instant results and zero build step.
Read the guideModern, performant, and developer-friendly. Built for the modern web.
Start building with the SearchJet API today. Works with any JavaScript framework or plain HTML.
Everything you need to know about searching with SearchJet from JavaScript
Start free, upgrade when you need more
All plans include SSL and CDN delivery. Paid plans are covered by a 99.5% monthly uptime SLA. View detailed pricing
Build instant search in React apps with SearchJet.
Learn moreSSR-safe search with App Router and Server Components.
Learn moreInstant search for Vue and Nuxt applications.
Learn moreStop MySQL crashes. Offload search to high-performance infrastructure.
Learn more