Aurelio logo

OpenAI Developer Role

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

OpenAI's chat completion API supports various roles, each with differing functions and authority levels. The roles are as follows:

  • developer is where instructions are provided to the model. This role was previously called system but for all models since the o1 release, it is now called developer.

  • user is the role of the user of the model.

  • assistant is the role of the assistant, typically used for LLM generated responses.

  • tool indicates the output from a tool call.

  • platform is used by OpenAI. It mostly covers prohibitive rules and policies.

Role Authority Levels

Each role has a different authority level, those are as follows:

  1. platform has the highest authority level, it cannot be overridden by anyone including developers building on top of OpenAI's API.

  2. developer is the second highest authority level, it is where we define specific use-case instructions and LLM behavior.

  3. user is the third highest authority level, these are naturally instructions or queries from the user.

Beyond these authority levels, there are also no authority messages. This includes assistant messages and all untrusted data, ie tool messages, quoted text, or multi-modal content like images.

, below that of platform messages set by OpenAI, and above that of user messages.