← Dashboard

OrbitSearch developer guide

One authenticated endpoint for web, downloadable images, and local results. Compatible with the core SerpAPI request and response shape.

1. Create a free key

curl -X POST https://search.rviv.in/api/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"name":"My application"}'

The secret is returned once. Store it in an environment variable and never commit it to source control.

2. Search with Node.js

import { OrbitSearch } from "https://search.rviv.in/sdk/orbitsearch.mjs";

const orbit = new OrbitSearch(process.env.ORBITSEARCH_API_KEY);
const result = await orbit.search("best Tamil podcasts", { gl: "in", num: 10 });
console.log(result.organic_results);

3. Search with Python

from orbitsearch import OrbitSearch
import os

orbit = OrbitSearch(os.environ["ORBITSEARCH_API_KEY"])
result = orbit.images("golden retriever", num=5)
for image in result["images_results"]:
    data, content_type = orbit.download(image["download_url"])

Async agent workflow

const result = await orbit.searchAsync("latest AI policy news", {
  tbs: "qdr:w",
  safe: "active"
});

The client polls the private 31-day archive automatically. Only successful completion consumes quota. Cached responses are free.

Errors and retries

HTTP 400 means invalid parameters, 401 means an invalid key, 429 means a rate or monthly quota limit, and retryable 5xx errors represent temporary upstream problems. Read the standard RateLimit headers before retrying.