Prompt Management for OpenAI API Apps

Calling the OpenAI API directly still leaves your prompts as strings in code. Endprompt puts them behind a stable, versioned endpoint — update prompts without touching your application code.

Prompt Management for OpenAI API Apps

The OpenAI API is straightforward to call. The problem isn't the API — it's what you put in it. Your system instructions and prompt templates are strings in your code. Change the wording, adjust the tone, try a different model — it's a code change, a commit, and a deploy.

Endprompt moves the prompt out of your application and into versioned, observable endpoints. Your code passes in the inputs. Endprompt handles the LLM call and returns the result.


The problem with prompts in OpenAI API apps

Whether you're using the Chat Completions API:

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant that summarises content concisely."},
        {"role": "user", "content": f"Summarise the following in 3 bullet points:\n\n{content}"},
    ]
)

text = response.choices[0].message.content

Or the newer Responses API:

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-4o",
    instructions="You are a helpful assistant that summarises content concisely.",
    input=f"Summarise the following in 3 bullet points:\n\n{content}",
)

text = response.output_text

The same problem exists in both: the system instructions and the prompt template are hardcoded strings. Every time something needs to change, someone edits the file, commits, and redeploys. There's no version history for the prompt, no rollback if something breaks, and no visibility into what was actually sent to the model when a production request went wrong.


How Endprompt integrates with the OpenAI API

You define the endpoint in the Endprompt dashboard: input schema, system instructions, prompt template (using Liquid templating), and model. Endprompt executes the OpenAI call and returns the result.

Your application becomes a simple API call:

import os
import requests

response = requests.post(
    f"{os.environ['ENDPROMPT_BASE_URL']}/api/v1/summarise",
    headers={
        "x-api-key": os.environ["ENDPROMPT_API_KEY"],
    },
    json={"content": content},
    timeout=60,
)

data = response.json()

Your system instructions, your prompt template, your model choice — all of it now lives in Endprompt. Your code passes in the inputs and gets back a result. Nothing else to maintain.


Environment variables

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. Your OpenAI API key is added separately under LLM API Keys in the sidebar (under Configuration) — Endprompt calls OpenAI on your behalf using your own key.


Key benefits for OpenAI API teams

Prompts out of code Your system instructions and prompt templates move to the Endprompt dashboard. No more hardcoded strings in your application. No more deploys to change AI behaviour.

Full version history Every prompt change is versioned. See what changed and when. Compare versions side by side.

Instant rollback Promoted a new prompt version and outputs degraded? Roll back in one click. No hotfix deploy required.

Full observability Every request is logged: the rendered prompt, model response, latency, and cost. Replay any request from the dashboard to debug production issues.

Cost tracking per feature The OpenAI API bills at the model level — you can't see what individual features cost. Endprompt tracks spend per endpoint, so you know exactly what each AI feature costs.

Non-technical iteration Domain experts can update prompt behaviour directly in the Endprompt dashboard — no engineering involvement, no PR, no redeploy.

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.


Setup steps

  1. Create an endpoint in the Endprompt dashboard — define your input fields, write your system instructions and prompt template using Liquid templating (e.g. {{ inputs.content }}), and choose your model.
  2. Add your OpenAI API key under LLM API Keys in the sidebar (under Configuration) — Endprompt calls OpenAI on your behalf using your own key.
  3. Copy your Endprompt API key from API Keys in the sidebar and add it to your environment variables alongside your tenant base URL.
  4. Replace your OpenAI call with a requests.post to your Endprompt endpoint, passing your input fields in the request body.
  5. Iterate from the dashboard — update prompts, swap models, adjust parameters. Your application code never changes.

Try it free

14-day free trial, no card required.

Start free trial · Read the quickstart docs


Related: Prompt Versioning · Prompt Management API · How to Manage Prompts in Production