Skip to main content
When your app needs to generate text with AI, create or edit an image, or send an email, it normally has to talk to an outside service like OpenAI, Replicate, or Resend, and each of those services requires you to sign up, verify your details, and create an API key before anything works. Genie removes that step. Every project with Genie Cloud enabled comes with working credentials for these services already wired in, so AI features, image generation, and transactional email work the first time Genie builds them — without you registering anywhere.
Built-in AI, image generation, and email require Genie Cloud to be connected to your project. If it is not enabled yet, see Genie Cloud to set it up first.

What you get out of the box

When Genie Cloud is provisioned for your project, Genie automatically adds a set of ready-to-use credentials to your project secrets. You do not have to create them, and you do not have to paste them anywhere — Genie’s generated code reads them on its own.

AI text (OpenAI & Anthropic)

Generate text, summaries, chat replies, and other AI content — and read images, PDFs, or spreadsheets you give it. Backed by OpenAI or Anthropic’s Claude models through Genie.

Image generation (Replicate)

Generate an image from a prompt, or edit an existing image — for example, changing a photo’s background or style. Ask for a logo or wordmark and Genie renders the actual requested lettering instead of leaving text out. Backed by Google’s image model through Replicate.

Email (Resend)

Send transactional email — confirmations, notifications, contact-form messages — through Resend.

ML inference (Hugging Face)

Run machine-learning models for tasks like classification or image work through Hugging Face.
These show up in your Secrets tab as the following entries, already filled in: You will also see matching OPENAI_BASE_URL, ANTHROPIC_BASE_URL, REPLICATE_BASE_URL, RESEND_BASE_URL, and HF_ENDPOINT entries. These tell your app to route requests through Genie. Leave them as they are unless you are switching to your own key (see Bringing your own key below).
Just describe what you want — “summarise each support ticket”, “generate a hero image of a sunset over mountains”, “change the background of this photo to a beach”, “design a wordmark logo that says Nova Studio”, “answer questions about this uploaded PDF”, “email me when someone submits the form” — and Genie builds the feature using these built-in credentials. You do not need to mention API keys at all.

How it works

Your app never holds a real OpenAI, Anthropic, Replicate, or Resend key. Instead, the credentials Genie seeds are project-specific access tokens that point at Genie’s secure relay. When your app makes a request:
1

Your app calls the service

Your generated code calls OpenAI, Anthropic, Replicate, Resend, or Hugging Face as normal, using the seeded credentials.
2

Genie authenticates and forwards it

The request reaches Genie, which verifies it belongs to your project and then forwards it to the real provider using Genie’s own provider key.
3

The response streams back

The provider’s reply is passed straight back to your app, unchanged. AI responses stream token by token just as they would directly.
This design keeps the real provider keys on Genie’s side — they are never placed in your project where they could be read or leaked — while still attributing every request to your project so usage can be measured fairly.

Usage and limits

Each request your app makes through the built-in credentials is recorded — provider, endpoint, status, and timing — so Genie can monitor the service and attribute usage to your project. AI text (OpenAI or Anthropic) and image, video, or audio generation (Replicate) draw down your credits. A successful request is billed using the same per-model rate your project chat is billed with, and appears in your ledger as Genie proxy · <provider> · <model>. Track your live app’s usage under Project Settings → Usage — a day-by-day breakdown with a 7/30/90-day range toggle — or in your account transaction history. Email (Resend) and Hugging Face inference are not metered yet and do not currently draw credits.
Billing only applies once Genie has priced a given model — a request to an unpriced model is charged nothing. As pricing rolls out to more models, usage through them starts drawing credits automatically, with no change needed on your end.
The practical limit on the built-in credentials is also a per-project rate limit (a cap on requests per minute), separate from credit billing. Normal app traffic stays well under it; if you expect heavy, sustained volume, bring your own key or contact support to raise the limit.
Bringing your own key keeps costs fully under your own control and outside Genie’s credit system — see Bringing your own key below. Those requests are billed by the provider directly to you instead.

Retrieval (RAG) with embeddings

If your app needs semantic search or retrieval-augmented generation (RAG) — matching a user’s question against your own content by meaning rather than exact keywords — Genie can turn text into embeddings (vector representations) out of the box, with no separate OpenAI key required. Ask Genie for something like “let users search our FAQ by meaning” or “answer questions using our uploaded documents”, and it wires up both halves of the flow:
  • Turning each chunk of your content into a vector when it is ingested, and storing the result in your Genie Cloud database (which supports pgvector for this).
  • Turning a user’s question into a vector at search time, then comparing it against your stored content to find the closest matches.
Genie picks the right embedding model automatically, so you don’t need to choose one yourself. Embeddings usage is recorded the same way other built-in AI requests are, so calls show up alongside your other activity under Project Settings → Usage.
Just describe what you want to search or retrieve, and Genie builds the ingestion and search flow using the built-in embeddings — you don’t need to mention vector databases or embedding models by name.

Limits of the built-in credentials

The included credentials are tuned for the common case — getting features working instantly and affordably. A few constraints come with that:

AI model

The built-in OpenAI credential is limited to Genie’s default model, which is selected to be fast and cost-effective for typical app features. The built-in Anthropic credential works the same way, limited to Genie’s default Claude model. If your app requests a different model, the request is rejected. To use a specific or more powerful model, bring your own OpenAI or Anthropic key. Some more powerful models — including certain Claude models — may be limited to certain plans or accounts, so don’t assume every model is available to every project.

Image model

The built-in Replicate credential is limited to a small set of Genie-selected image models (Google’s nano-banana family, used for both generating a new image and editing an existing one). If your app requests a model outside that set, the request is rejected. To use a different image model, bring your own Replicate key.

Spreadsheet attachments

No AI model reads a .xlsx file directly, so when your app sends one as part of a built-in AI request, Genie automatically converts it to a plain-text table before it reaches the model — the same data, just in a format every model can already read. There’s nothing to configure; this happens for every request through the built-in credential. Very large workbooks are trimmed so a request stays a reasonable size: up to 8 MB per file, 5 files per request, and the first 10 sheets (500 rows × 30 columns each) are included, with a note added where content had to be cut.

Email sender address

Email sent through the built-in Resend credential must use Genie’s verified sending address:
If you try to send from any other address, the request is rejected with a clear message. This is because email providers only allow sending from domains that have been verified, and email.genie-app.de is the domain Genie has verified for shared use. To send from your own address or domain — for example hello@yourcompany.combring your own Resend key.
If your app’s emails need to come from your own brand’s address, set up your own Resend key before launch. The built-in sender is great for testing and internal notifications, but recipients will see noreply@email.genie-app.de as the sender.

Bringing your own key

You can replace any of the built-in credentials with your own at any time. This is the right move when you want a specific AI model, your own email domain, your own usage limits, or provider billing in your own account.
1

Create a key with the provider

Sign up with OpenAI, Anthropic, Replicate, Resend, or Hugging Face and create an API key. For Resend, verify your sending domain in their dashboard first.
2

Open your project Secrets

In your project, open Settings → Secrets. See Secrets for details.
3

Replace the value

Edit the relevant secret — OPENAI_API_KEY, ANTHROPIC_API_KEY, REPLICATE_API_TOKEN, RESEND_API_KEY, or HF_TOKEN — and paste your own key in place of the built-in one.
4

Save

Save the secret. Genie automatically updates the matching base-URL entry to point at the provider directly, so your app talks to the provider with your key instead of going through Genie’s relay. No code changes are needed.
Once you have switched, requests for that provider go straight from your app to the provider, are billed to your own account, and are no longer subject to Genie’s model allowlist, sender-address restriction, or rate limit. The other built-in credentials you did not change keep working as before.
Switching back to the built-in credential later is done by re-running provisioning for the project (the Re-run bootstrap button in the Cloud tab re-seeds the built-in values). A dedicated one-click reset is on the roadmap.

Troubleshooting

Ask Genie in the project chat — “why is my email failing?”, “why did image generation reject my request?”, or “switch my app to my own OpenAI key” — and it can inspect your secrets and the relevant code and walk you through the fix.