diff --git a/public/providers/opper.svg b/public/providers/opper.svg
new file mode 100644
index 0000000000..29474dc4d7
--- /dev/null
+++ b/public/providers/opper.svg
@@ -0,0 +1 @@
+
diff --git a/src/shared/constants/providers.ts b/src/shared/constants/providers.ts
index a9bfee5671..7d4b51f111 100644
--- a/src/shared/constants/providers.ts
+++ b/src/shared/constants/providers.ts
@@ -97,6 +97,7 @@ export const AGGREGATOR_PROVIDER_IDS = new Set([
"kilo-gateway",
"aimlapi",
"novita",
+ "opper",
"piapi",
"getgoapi",
"laozhang",
diff --git a/tests/snapshots/provider/translate-path.json b/tests/snapshots/provider/translate-path.json
index 1b8e1a78da..8380aa7c4f 100644
--- a/tests/snapshots/provider/translate-path.json
+++ b/tests/snapshots/provider/translate-path.json
@@ -4609,6 +4609,29 @@
"stream": "https://api.openvecta.com/v1/chat/completions"
}
},
+ "opper": {
+ "format": "openai",
+ "headers": {
+ "apiKey": {
+ "Accept": "text/event-stream",
+ "Authorization": "Bearer ",
+ "Content-Type": "application/json"
+ },
+ "nonStream": {
+ "Authorization": "Bearer ",
+ "Content-Type": "application/json"
+ },
+ "oauth": {
+ "Accept": "text/event-stream",
+ "Authorization": "Bearer ",
+ "Content-Type": "application/json"
+ }
+ },
+ "url": {
+ "nonStream": "https://api.opper.ai/v3/compat/chat/completions",
+ "stream": "https://api.opper.ai/v3/compat/chat/completions"
+ }
+ },
"orcarouter": {
"format": "openai",
"headers": {