Skip to main content
POST
/
v1
/
agents
/
{agent_id}
/
prompts
/
promote
Promote Production Label Agent Scoped
curl --request POST \
  --url https://api.getbluejay.ai/v1/agents/{agent_id}/prompts/promote \
  --header 'X-API-Key: <x-api-key>'
{
  "prompt_text": "<string>",
  "version": 123,
  "agent_id": 123,
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "commit_message": "<string>",
  "labels": [
    "<string>"
  ],
  "metadata": {}
}
Integration Prompt for AI Agents
# Bluejay — Testing & Monitoring Platform for Conversational AI Agents

You are a senior backend engineer integrating the Bluejay API. Think step-by-step: first understand the endpoint, then plan the integration, then implement with minimal changes.

## Promote Prompt — POST /v1/agents/{agent_id}/prompts/promote

> **What this endpoint does:** move the production label to the latest prompt version, or to the version identified by `prompt_id`.

**Endpoint:** POST `https://api.getbluejay.ai/v1/agents/{agent_id}/prompts/promote`
**Auth:** `X-API-Key` header

### Required Parameters
| Name | Type | Description |
|------|------|-------------|
| agent_id | integer |  |
| X-API-Key | string | API key required to authenticate requests. |

Review the full parameter list at https://docs.getbluejay.ai/api-reference/endpoint/promote-prompt and include any optional parameters (e.g., `prompt_id`) that serve your integration's use case and align with Bluejay's testing and monitoring capabilities.

### Example
**POST (optional `prompt_id` query):**
```python
import requests

def promote_prompt(agent_id: int, api_key: str, prompt_id=None) -> dict:
    url = f"https://api.getbluejay.ai/v1/agents/{agent_id}/prompts/promote"
    headers = {"X-API-Key": api_key}
    params = {"prompt_id": prompt_id} if prompt_id else None
    response = requests.post(url, headers=headers, params=params)
    response.raise_for_status()
    return response.json()
```

### Constraints
- Minimal changes — only add/change files needed for this integration.
- Match existing codebase patterns (naming, file structure, error handling).
- Include error handling for 422: Validation Error.

### Integration Checklist
Before writing code, verify:
1. Which module/service owns this API domain in the codebase?
2. What HTTP client and error-handling patterns does the project use?
3. Are there existing types/interfaces to extend?

Then implement the integration, export it, and confirm it compiles/passes lint.
Moves the production label to the latest prompt version, or to the version specified by prompt_id when that query parameter is provided.

Headers

X-API-Key
string
required

API key required to authenticate requests.

Path Parameters

agent_id
integer
required

Query Parameters

prompt_id
string<uuid> | null

If set, attach the production label to this prompt version; otherwise attach to the latest version.

Response

Successful Response

response model for prompt without created_at.

prompt_text
string
required

the prompt content

version
integer
required

the version number of the prompt

agent_id
integer
required

id of the agent that owns this prompt

id
string<uuid> | null

the id of the prompt

commit_message
string | null
labels
string[] | null

labels associated with the prompt

metadata
Metadata · object

arbitrary JSON metadata