SearchJetEngine
Updated August 10, 2026

SDK Reference

SDK Reference

Official client libraries for integrating SearchJet Engine into your application. Each SDK handles authentication, request signing, error handling, and retries automatically.


JavaScript / TypeScript SDK

Installation

npm install searchjet-connect

Initialization

import SearchJet from 'searchjet-connect';

const client = new SearchJet({
  apiKey: 'sj_prv_xxxxxxxxxxxxxxxx'
});

Configuration Options

Option Type Required Description
apiKey string Yes Your SearchJet API key
baseUrl string No Custom base URL (default: https://app.searchjetengine.com)
timeout number No Request timeout in ms (default: 10000)
retries number No Auto-retry count on failure (default: 3)
const results = await client.search('react tutorial', {
  limit: 20,
  sort: 'relevance'
});

console.log(results.results.hits);  // Array of matching documents
console.log(results.results.estimatedTotalHits);  // Total number of matches

Indexing

// Bulk index multiple documents
await client.indexBulk([
  { id: 'doc_001', title: 'Getting Started', content: '...', url: '/blog/start' },
  { id: 'doc_002', title: 'Advanced Topics', content: '...', url: '/blog/advanced' }
]);

// Delete a document
await client.indexDestroy('doc_001');

Client Info

const info = await client.getClientInfo();
console.log(info.meilisearch_host);
console.log(info.plan);

Error Handling

try {
  const results = await client.search('test');
} catch (error) {
  console.error(error.code);     // 'validation_failed'
  console.error(error.message);  // 'The q parameter is required.'
  console.error(error.status);   // 400
}

Python SDK

Installation

pip install searchjet-python

Client Setup

from searchjet import SearchJetClient

client = SearchJetClient(
    api_key="sj_prv_xxxxxxxxxxxxxxxx"
)

Configuration Options

Parameter Type Required Default Description
api_key str Yes Your API key
base_url str No https://app.searchjetengine.com API base URL
timeout float No 10.0 Request timeout in seconds
max_retries int No 3 Retry attempts on failure
results = client.search(
    query="react tutorial",
    limit=20
)

print(results["results"]["hits"])  # List of matching documents
print(results["results"]["estimatedTotalHits"])  # Total matches

Indexing

# Bulk index
client.index_bulk([
    {"id": "doc_001", "title": "Getting Started", "content": "...", "url": "/blog/start"},
    {"id": "doc_002", "title": "Advanced Topics", "content": "...", "url": "/blog/advanced"}
])

# Delete a document
client.index_destroy("doc_001")

Client Info

info = client.get_client_info()
print(info["meilisearch_host"])
print(info["plan"])

Error Handling

from searchjet.exceptions import (
    SearchJetError,
    ValidationError,
    UnauthorizedError,
    RateLimitedError
)

try:
    results = client.search("test")
except ValidationError as e:
    print(f"Invalid request: {e.message}")
except UnauthorizedError:
    print("Check your API key")
except RateLimitedError as e:
    print(f"Rate limited, retry after {e.retry_after}s")
except SearchJetError as e:
    print(f"SearchJet error: {e}")

Using with httpx Directly

import httpx

# The SDK uses httpx internally, but you can also make raw requests
response = httpx.get(
    "https://app.searchjetengine.com/v1/search",
    params={"q": "react", "limit": 10},
    headers={"Authorization": "Bearer sj_prv_xxxxxxxxxxxxxxxx"}
)
data = response.json()

PHP / Laravel SDK

Installation

composer require searchjet/laravel

Service Provider (Auto-registered)

The package auto-discovers the service provider. Publish the config:

php artisan vendor:publish --provider="SearchJet\SearchJetServiceProvider" --tag="config"

Configuration

// config/searchjet.php
return [
    'api_key' => env('SEARCHJET_API_KEY'),
    'base_url' => env('SEARCHJET_BASE_URL', 'https://app.searchjetengine.com'),
    'timeout' => env('SEARCHJET_TIMEOUT', 10),
];

Set in .env:

SEARCHJET_API_KEY=sj_prv_xxxxxxxxxxxxxxxx

Facade Usage

use SearchJet\Facades\SearchJet;

// Search
$results = SearchJet::search('react tutorial', [
    'limit' => 20
]);

// Bulk index
SearchJet::indexBulk([
    ['id' => 'doc_001', 'title' => 'Getting Started', 'content' => '...', 'url' => '/blog/start'],
    ['id' => 'doc_002', 'title' => 'Advanced Topics', 'content' => '...', 'url' => '/blog/advanced']
]);

// Delete a document
SearchJet::indexDestroy('doc_001');

Error Handling

use SearchJet\Facades\SearchJet;
use SearchJet\Exceptions\SearchJetException;
use SearchJet\Exceptions\ValidationException;
use SearchJet\Exceptions\RateLimitedException;

try {
    $results = SearchJet::search('test');
} catch (ValidationException $e) {
    Log::warning('SearchJet validation: ' . $e->getMessage());
} catch (RateLimitedException $e) {
    $retryAfter = $e->getRetryAfter();
    Log::info("Rate limited, retry after {$retryAfter}s");
} catch (SearchJetException $e) {
    Log::error('SearchJet error: ' . $e->getMessage());
}

HTTP Client (Guzzle)

The Laravel SDK uses Guzzle under the hood. You can also use it directly:

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://app.searchjetengine.com',
    'headers' => [
        'Authorization' => 'Bearer ' . config('searchjet.api_key'),
        'Accept' => 'application/json'
    ]
]);

$response = $client->get('/v1/search', [
    'query' => ['q' => 'react', 'limit' => 10]
]);

$data = json_decode($response->getBody(), true);

WordPress Plugin

Installation

  1. Download the SearchJet plugin from the WordPress plugin directory
  2. Upload via Plugins > Add New > Upload Plugin
  3. Activate the plugin
  4. Navigate to Settings > SearchJet and enter your API key

Configuration

Setting Description
API Key Your SearchJet API key (public key for client-side search)
Search Page Page containing the search shortcode
Results Per Page Default results per page
Enable Autocomplete Show suggestions as users type

Using the Shortcode

// Basic search box
[searchjet_search]

// With placeholder text
[searchjet_search placeholder="Search articles..."]

// Search results page
[searchjet_results]

Using in Theme


     'Search...',
        'theme' => 'dark'
    ]); ?>


Quick Start Comparison

Platform Install Initialize Search
JavaScript npm i searchjet-connect new SearchJet({...}) client.search('query')
Python pip install searchjet-python SearchJetClient(...) client.search("query")
PHP/Laravel composer require searchjet/laravel config('searchjet.php') SearchJet::search('query')
WordPress Plugin upload Settings page [searchjet_search]

See Also

Was this article helpful?

Ready to add search to your project?

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