Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pratyay360/searchapi/llms.txt
Use this file to discover all available pages before exploring further.
SearchAPI ships with multiple deployment paths so you can run it wherever your workflow requires — a local Python environment, a container runtime, or a managed cloud service. All options expose the API on port 8000 and include the MCP server at /mcp.
uv (local)
Docker
Podman / podman-compose
Render
Run SearchAPI directly on your machine using uv, an ultrafast Python package and project manager.Prerequisites: Python 3.13 or higher, uv installed.Clone the repository
git clone https://github.com/Pratyay360/search-api.git
cd search-api
Install dependencies
This installs all dependencies from pyproject.toml into an isolated virtual environment. The --frozen flag is not required for local development. Start the server
The API is now available at http://localhost:8000. A prebuilt image is published to Docker Hub as pratyay360/searchapi. No build step is required.Prerequisites: Docker installed and running.Pull the image
docker pull pratyay360/searchapi
Run the container
docker run -p 8000:8000 pratyay360/searchapi
Port 8000 on the container is mapped to port 8000 on your host. To use a different host port, replace the first 8000 — for example, -p 9000:8000.Verify the service
curl http://localhost:8000/health
The Docker image is built on ghcr.io/astral-sh/uv:alpine3.22 and sets PYTHONUNBUFFERED=1 for real-time log output.
Use Podman as a rootless, daemonless alternative to Docker. The included podman-compose configuration handles everything.Prerequisites: podman and podman-compose installed.Clone the repository
git clone https://github.com/Pratyay360/search-api.git
cd search-api
Start the service in the background
Deploy to Render using the included render.yaml configuration. Render builds and runs the Docker image automatically on every commit to the connected repository.Deploy with one click
Click the button below to open Render’s deploy wizard pre-configured for this repository.
Render reads render.yaml from the repository root and creates the service automatically. Review the service configuration
The render.yaml in the repository configures the following:| Field | Value |
|---|
| Service type | web |
| Runtime | docker |
| Docker context | . (repository root) |
| Dockerfile path | ./Dockerfile |
| Auto-deploy trigger | Every commit to the connected branch |
| Plan | Free |
No additional configuration is required for a basic deployment. Verify the deployment
Once the build completes, Render provides a public URL. Append /health to confirm the service is running:curl https://<your-service>.onrender.com/health
Render’s free tier spins down services after periods of inactivity. The first request after a spin-down may take 30–60 seconds to respond while the container restarts.
Port and health check reference
| Detail | Value |
|---|
| Default port | 8000 |
| Health check endpoint | GET /health |
| Expected health response | {"status": "ok"} |
| Root endpoint | GET / — returns API status and MCP server path |
| MCP server | /mcp |
CORS configuration
SearchAPI allows all origins, methods, and headers by default. The CORSMiddleware is configured with allow_origins=["*"], which means you can call the API from any frontend, script, or tool without additional configuration.
CORS is intentionally open for flexibility in research and development workflows. If you are deploying SearchAPI in a production environment with sensitive data, restrict allow_origins to trusted domains by modifying main.py before building your image. SearchAPI is intended for educational and research use. You are responsible for complying with the terms of service of any upstream search engine and applicable laws in your jurisdiction.