Migrating from system role to developer role in OpenAi messages

OpenAI has added a new role in the message input called "developer." This role replaces the existing "system" role and provides context to the thinking models. All thinking models after O1 support this new role.

Current payload:

{
    "model": "o4-mini",
    "messages": [
        { "role": "system", "content": "system prompt" },
        { "role": "user", "content": "user prompt" },
    ]
}

New payload:

{
    "model": "o4-mini",
    "messages": [
        { "role": "developer", "content": "system prompt" },
        { "role": "user", "content": "user prompt" },
    ]
}

This does not work for o1-mini. You will get an error trying to supply system or developer role.

{
    "error": {
        "message": "Unsupported value: 'messages[0].role' does not support 'system' with this model.",
        "type": "invalid_request_error",
        "param": "messages[0].role",
        "code": "unsupported_value"
    }
}

{
    "error": {
        "message": "Unsupported value: 'messages[0].role' does not support 'developer' with this model.",
        "type": "invalid_request_error",
        "param": "messages[0].role",
        "code": "unsupported_value"
    }
}

AI Summary AI Summary
gpt-4.1-2025-04-14 2025-05-30 19:52:13
OpenAI has introduced a "developer" role to replace the "system" role in message payloads for models after O1. This new role provides context to thinking models, but it isn’t supported by older models such as o1-mini, which will return errors if used.
Chrome On-device AI 2025-06-17 23:36:38
Writing

Share Share this Post