• Home
  • Vision
  • Audio
  • Docs
  • GitHub
Sarvam Logo

Vision Server Webhook

Install a Hono Vision server with webhook + KV support for async batch workflows.

Install

bunx shadcn@latest add rajatsandeepsen/sarvam-simple/vision-server-webhook

Environment Variable

Get your key from sarvam.ai

SARVAM_API_KEY=your_api_key_here

Mount in your Hono app

import { Hono } from "hono";
import visionServer from "./sarvam/vision/server";
 
const app = new Hono();
 
app.route(
	"/vision",
	visionServer({
		SARVAM_API_KEY: process.env.SARVAM_API_KEY,
		kvBinding: "KEYVALUE",
		webHook: {
			baseUrl: "https://your-domain.com/api/vision",
			authToken: "your-callback-token", // optional
			sendEmail: async (email, files) => {
				// write your own logic
				// files => [{ filename, url }]
			},
		},
	}),
);
 
export default app;

Routes

  • POST /vision/upload
  • POST /vision/:id/upload
  • POST /vision/:id/status
  • POST /vision/:id/download
  • POST /vision/:id/email
  • POST /vision/:id/webhook

Usage flow

  1. Client uploads files to /vision/upload and receives { id }.
  2. Server stores { job_id, email? } in KV (if configured).
  3. Sarvam calls /vision/:id/webhook after processing.
  4. Server resolves id -> job_id, downloads output URLs, then runs sendEmail(email, files).

Note

If webhook.authToken is set, webhook requests must include:

  • X-SARVAM-JOB-CALLBACK-TOKEN: <your-callback-token>