Manage, version, and update LLM prompts in your Next.js app without redeploying. Endprompt gives you a stable API endpoint — change your prompt in the dashboard, your app picks it up instantly.
Every Next.js team building AI features hits the same wall: the prompt lives in the code. Change it, and you need a Vercel redeploy. Something breaks quietly in production, and there's no version history to diff against. Your AI feature becomes the thing nobody wants to touch.
Endprompt fixes this by moving the prompt out of your codebase entirely. Your Next.js app calls one stable endpoint. You update the prompt in the dashboard — no redeploy, no code change, no risk.
Most teams start the same way: an OpenAI or Anthropic call inside an API route, with the prompt as a template string.
// app/api/summarise/route.ts
const response = await openai.chat.completions.create({
model: 'gpt-4o',
messages: [
{
role: 'user',
content: `Summarise this in 3 bullets:\n\n${text}`,
},
],
})
It works. Until you need to change the wording. Or test a different model. Or figure out why your summariser started returning five bullets instead of three last Tuesday.
Every prompt change is a code change. Every code change is a deploy. And there's no history, no rollback, no visibility into what changed or when.
You create an endpoint in the Endprompt dashboard — define your inputs, write your prompt using Liquid templating, choose your model. Endprompt gives you a stable API URL.
Your Next.js route becomes a thin pass-through:
// app/api/summarise/route.ts
import { NextResponse } from 'next/server'
export async function POST(request: Request) {
const { text } = await request.json()
const response = await fetch(
`${process.env.ENDPROMPT_BASE_URL}/api/v1/summarise`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.ENDPROMPT_API_KEY!,
},
body: JSON.stringify({ text }),
}
)
const data = await response.json()
return NextResponse.json(data)
}
That's the integration. From here, you iterate on the prompt in the Endprompt dashboard. The endpoint URL never changes. Your app doesn't know or care what the prompt says.
ENDPROMPT_API_KEY=ep_live_xxxxxxxxxxxxxxxxxxxx
ENDPROMPT_BASE_URL=https://your-tenant.api.endprompt.ai
Your Endprompt API key is under API Keys in the dashboard sidebar. Never expose it client-side — always call Endprompt from a server-side route or Server Action.
No redeploy for prompt changes Update prompt wording, swap models, adjust temperature — it takes effect immediately. Nothing to merge, nothing to deploy.
Works with App Router and Pages Router Endprompt is just an authenticated HTTP endpoint. Call it from an API route, a Server Action, or any server-side context.
Cost tracking per route
See exactly what each AI feature costs — not just aggregate model spend. If your /api/summarise route is responsible for 60% of your LLM bill, you'll know.
Full observability Every request is logged. You can see the rendered prompt, the model response, latency, and cost for every call. Replay any request from the dashboard.
Instant rollback Promoted a new prompt version and something broke? Roll back in one click. No hotfix, no incident.
Smart caching Enable caching per endpoint in the dashboard — no code changes required. Up to 67% cost reduction on repeated queries for stable, deterministic outputs.
{{ inputs.text }}), and choose your model..env.local along with your tenant base URL.fetch to your Endprompt endpoint.14-day free trial, no card required.
Start free trial · Read the quickstart docs
Related: Prompt Versioning · Update LLM Prompt Without Deploying · Prompt Management API