Browse the docs

Embeddings

Vector embeddings, freely included with the hosted developer tier; for the full self-hosted retrieval stack, start with the Quick Start Guide. We recommend using the full database solution as the model is better in context.

Endpoint

  • POST https://gimmelowdown.com/api/v1/embeddings
  • Auth: include the header Authorization: Bearer <api_key>.
  • Body: JSON {"input": ...} where input is a text string, an array of strings, or an array of {"text": "..."} / {"image": ...} items. Images can be an https:// URL or base64 bytes, with or without a data:image/...;base64, prefix.
  • Accepted image formats: JPEG, PNG, GIF, WebP, TIFF. Text items are embedded directly. No video or audio yet. URLs larger than 25MB are rejected with 413.
  • Batches: up to 32 items per request, embedded in input order, one vector per item. Larger batches are rejected with 422.
  • Resolution: target_res (int, multiple of 16, 64-512) controls embed resolution - higher is more accurate, slower. Default is 64px for best speed and quality.
  • Response: {"object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [...1152 floats...], "embedding_prefix": [...256 floats...]}], "model": "fever-base", "usage": {"total_embeddings": N}}.

Rate Limits

  • Each key is allowed 200 requests per minute - all-you-can-embed within that window, flat rate, no per-token or per-asset metering.
  • Exceeding the limit returns 429 Too Many Requests with a Retry-After header telling you how many seconds to wait before retrying.
  • New accounts get 50 test requests before a subscription is required.

Examples

curl https://gimmelowdown.com/api/v1/embeddings -H "Authorization: Bearer $FEVER_API_KEY" -H "Content-Type: application/json" -d '{"input": "a red dress on a runway"}'

curl https://gimmelowdown.com/api/v1/embeddings -H "Authorization: Bearer $FEVER_API_KEY" -H "Content-Type: application/json" -d '{"input": [{"image": "https://example.com/red-dress.jpg"}]}'
import os
import requests

r = requests.post(
    "https://gimmelowdown.com/api/v1/embeddings",
    headers={"Authorization": f"Bearer {os.environ['FEVER_API_KEY']}"},
    json={"input": "a red dress on a runway"},
)
r.raise_for_status()
print(len(r.json()["data"][0]["embedding"]))
const r = await fetch("https://gimmelowdown.com/api/v1/embeddings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.FEVER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ input: "a red dress on a runway" }),
});
if (!r.ok) throw new Error(`embeddings failed: ${r.status}`);
const { data } = await r.json();
console.log(data[0].embedding.length);

Client SDKs