The developer role is used across OpenAI's APIs to instruct an LLM. It is where developers provide rules and guidance for what an LLM must do, and how to do it.
In the past a system role was used in place of the developer role. But as of the o1
model release, all new models use the developer role with the system role being
deprecated.
Developer messages are sent to the Response API like so:
json
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1-mini",
"input": [
{
"role": "developer",
"content": "You are a helpful assistant, do XYZ."
},
{
"role": "user",
"content": "I need to understand XYZ, can you help?"
}
]
}'
Alternatively, a developer message can be sent via the instructions parameter of the
Responses API:
json
curl "https://api.openai.com/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4.1-mini",
"instructions": "You are a helpful assistant, do XYZ.",
"input": "I need to understand XYZ, can you help?"
}'
Developer Authority Levels
Messages assigned the developer role have the second highest authority level,
below that of platform messages set by OpenAI, and above that of user messages.
