cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:3032::ac43:db62:443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iaDAD6NodZkmacDuiI%2Btn4MMSUhq2tCBlT%2BlPInUz5RTg3R61M8esLsY74zDLobVRSZIPNJjH3N5TvoLQmrrW5kDlKIVzYAZnwMG8n%2BPic3S5%2FR9vkMsiQs%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=44
CF-RAY: 9c320582e9da7091-YYZ
alt-svc: h3=":443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 2606:4700:3035::6815:4b60:80 · transformrs.org
2026-01-24 19:43
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Length: 0
Connection: close
Location: https://transformrs.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=6PA9S%2BJ0RQmVt4HY3%2Bfvp5sRp5KR7yT1KOH4NY8VZIdUU8hez%2FFMXGZs2d3iE2XH98AeJfU6usGxcjuBb5%2FjizxstB4uVy8nSoo3zefF8D1MmfzlwZcxIWnEAQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=27,cfOrigin;dur=12
cf-cache-status: DYNAMIC
CF-RAY: 9c320582cf148c7b-EWR
alt-svc: h3=":443"; ma=86400
Open service 172.67.219.98:8443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=WaaxYPX4OvHyaucC563RuLUpPTlMOnYE3mFkb0ydGhnCh1eKGHvkSIrF9FShxSNL0YUFvhgGJdZzYa9u9MkGhFMvyy3fpkkWqe385yg%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=43
CF-RAY: 9c320582eb430f94-EWR
alt-svc: h3=":8443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 2606:4700:3032::ac43:db62:80 · transformrs.org
2026-01-24 19:43
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Length: 0
Connection: close
Location: https://transformrs.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=YXX%2FytZL1s%2FcTssGemht4zifZSxbvFGmXEpYSWKtX%2BcYqlmqjGj6fgybnQThe49vXcpqW2j7ClTtEbQLSTpZA%2BqEU7dQEYzviudv%2BqIvuNCL6dt8635ExLGf4w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=17,cfOrigin;dur=18
cf-cache-status: DYNAMIC
CF-RAY: 9c320582b9c0ab03-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::ac43:db62:8443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=KZMgiqed%2Fct7FbJK%2BUrgmTt18vIzIh1AKkysTtiaueykKsirEcKMnsrCwkBhBq6TxGVgVEx8xn4ov%2Fg%2Bvi62rVy74mf4nqoYUgJVITzUAemu3R%2BZEd2v0aulIA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=45
CF-RAY: 9c320582eb53aacd-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 104.21.75.96:8443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=gLp4AewZXhFxUCWr8%2FaNJUOLiIsRYmlyhSVj0TWhyrtNExKUh2yymkQsqGZaBmQ1X23pUc4bTlHhtXH2%2BhKRW8fC6Bfg9bSF0LVhvkVblw%3D%3D"}]}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=21,cfOrigin;dur=54
cf-cache-status: DYNAMIC
CF-RAY: 9c320582f86642a1-EWR
alt-svc: h3=":8443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 2606:4700:3035::6815:4b60:443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=aj3Gdq%2BCrPD66IyM%2BtcCCvn7pgvURbf4inCHUJplU9DemV7swyzF1etEisCIbjKNC6ZCvVXEgw1vBgRcSAep0IQSWHAjhkDAwgZdbfg4Di0priL5uOmofjegAw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=10,cfOrigin;dur=37
CF-RAY: 9c320582e934de93-EWR
alt-svc: h3=":443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 172.67.219.98:80 · transformrs.org
2026-01-24 19:43
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Length: 0
Connection: close
Location: https://transformrs.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=NC4F0Q%2BW%2F0RJ0SRmZtXuBN%2BbyTw7hE%2B3wS13wx%2F14pGLpI7u94s92orZwgAGGYhVYBK14rUhYosaUF2FzHAS%2FSwPFOaiI8xXzyAVutwegw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=16,cfOrigin;dur=8
cf-cache-status: DYNAMIC
CF-RAY: 9c320582aeb158c1-EWR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3035::6815:4b60:8443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OYRVrVggDJDunPcCi6QztDQwQWCuGXyk88kbPEscoO4%2FqbL8iXVFxpvvfZ1a3AlR1nEbeJz%2FBTC1dYN78JObvux%2BaGj3VAQDGSqY4KRaLYgybjJH2b2vvPl8CQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=34
CF-RAY: 9c320582fcab14a8-EWR
alt-svc: h3=":8443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 104.21.75.96:443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=D7Zqgax3m5O4L0eif5Gx7FLKcg%2B2e5J%2FevWt34V%2BhRAZmZVdyDnh1IdJzPRDbhdVKA1HwjiK5zZti5Fk88Q07PhuBRpttPDGg%2BHWl%2FXQmA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=17,cfOrigin;dur=58
CF-RAY: 9c320582ee2e443e-EWR
alt-svc: h3=":443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 172.67.219.98:443 · transformrs.org
2026-01-24 19:43
HTTP/1.1 200 OK
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8oAuuUrJNJ26r829bQWoVTGgpUUk09sKXyRmxtibHS2qRAn2KHNuUMbiDpVtwl5nU28XcboLM96KVHaEzcIAM4Tf2TlV70qjXpVNhFETrQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=7,cfOrigin;dur=37
CF-RAY: 9c320582e81ee8c4-EWR
alt-svc: h3=":443"; ma=86400
Page title: transformrs
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="An interface for AI API providers">
<title>transformrs</title>
<link rel="stylesheet" href="/style.css">
<link rel="stylesheet" href="/highlight/github.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/highlight/github-dark.min.css" media="(prefers-color-scheme: dark)">
<script src="/highlight/highlight.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', (event) => {
hljs.highlightAll();
});
</script>
</head>
<body>
<div class="menu">
<div class="left">
<div class="menu-title">
<a href="/">transformrs</a>
</div>
</div>
<div class="right">
<input type="checkbox" id="menu">
<label class="right menu-button" for="menu">☰</label>
<div class="menu-content">
<ul>
<li>
<a href="https://docs.rs/transformrs/latest/transformrs/">docs</a>
</li>
<li>
<a href="/contributing">contributing</a>
</li>
<li class="menu-svg">
<a href="https://github.com/rikhuijzer/transformrs" title="GitHub">
<svg height="29" viewBox="0 0 16 16" version="1.1" width="25" aria-hidden="true"><path fill="#C2D5E0" fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content">
<div class="hero">
<div style="margin-left: auto; margin-right: auto; text-align: center; max-width: 55ch;">
<p style="margin-top: 5vh; line-height: 150%;">
transformrs is an <span class="emphasize">interface</span> to <br>
<span class="emphasize">AI API</span> providers.
</p>
</div>
</div>
<h2 id="examples">Examples</h2>
<p>First, set your API key either in an <code>.env</code> file or as an environment variable.
For example, for DeepInfra, set <code>DEEPINFRA_KEY</code> in <code>.env</code>:</p>
<pre data-lang="env" class="language-env "><code class="language-env" data-lang="env">DEEPINFRA_KEY=<KEY>
</code></pre>
<p>and add the library to your <code>Cargo.toml</code>:</p>
<pre data-lang="toml" class="language-toml "><code class="language-toml" data-lang="toml">[dependencies]
futures-util = "0.3" # Only required for `stream_chat_completion`.
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
transformrs = "0.3.0"
</code></pre>
<p>Then, you can use the API as follows.</p>
<ul>
<li><a href="https://transformrs.org/#chat-completion">Chat Completion</a></li>
<li><a href="https://transformrs.org/#chat-completion-with-image">Chat Completion with Image</a></li>
<li><a href="https://transformrs.org/#streaming-chat-completion">Streaming Chat Completion</a></li>
<li><a href="https://transformrs.org/#text-to-speech">Text to Speech</a></li>
<li><a href="https://transformrs.org/#text-to-image">Text to Image</a></li>
</ul>
<h3 id="chat
Open service 104.21.75.96:80 · transformrs.org
2026-01-24 19:43
HTTP/1.1 301 Moved Permanently
Date: Sat, 24 Jan 2026 19:43:45 GMT
Content-Length: 0
Connection: close
Location: https://transformrs.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=wiz9TLCh5VqAuyUoZOHQIXWL2XWMNAaVlLCx%2BXzfuxJqwxRBjILvVuf6qX6GOpLMdzSUmnpUZHwKshq1E7ksvbUB%2BMLg%2BGDyVYN5UC8kdg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=7
cf-cache-status: DYNAMIC
CF-RAY: 9c320582af3eb731-EWR
alt-svc: h3=":443"; ma=86400