Foldbun Stack
中Get an API keyComing soon
Embeddings

SigLIP 2 API: image and text embeddings

PublicModel licence: Apache 2.0

SigLIP 2 embeds images and texts in one vector space, so images can be matched to text queries and labels without training.

Read the docsGet an API keyComing soonAPI reference

Price

Billed itemUnitCredits
Image embedding
One image per request.
per image0.05
≈ US$0.00005 top-up
Text embedding
Each string in texts[].
per text input0.01
≈ US$0.00001 top-up

Included in the public pool: 100 calls per day after sign-up. Prices are in credits. Failed calls cost nothing.

Sample results

Recorded responses of the API on sample images.

Dog on a beach1 image, 5 textstop: a dog on a beach
Bowl of ramen1 image, 5 textstop: a bowl of ramen
Rainy street at night1 image, 4 textstop: a rainy street at night

Request and response

POST https://api.stack.foldbun.com/v1/embeddings with a Bearer API key. Each call carries either one image or a list of texts.

API reference
# macOS: replace "base64 -w0 beach-dog.webp" with "base64 -i beach-dog.webp"
curl https://api.stack.foldbun.com/v1/embeddings \
  -H "Authorization: Bearer $FOLDBUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<EOF
{"model": "siglip2", "image": {"base64": "$(base64 -w0 beach-dog.webp)"}}
EOF
import base64, os, requests

with open("beach-dog.webp", "rb") as f:
    image = base64.b64encode(f.read()).decode()

r = requests.post(
    "https://api.stack.foldbun.com/v1/embeddings",
    headers={"Authorization": f"Bearer {os.environ['FOLDBUN_API_KEY']}"},
    json={"model": "siglip2",
          "image": {"base64": image}},
    timeout=60,
)
r.raise_for_status()
print(r.json())
# vectors are L2-normalised: similarity = dot product
Response (shortened)
{
  "id": "call_01a1913e-bed1-7605-b1be-55da62598752",
  "model": "siglip2",
  "image": {"height": 1008, "id": "img_d94c2292…17f8", "width": 1512},
  "dimensions": 768,
  "embeddings": [
    {"index": 0, "vector": [0.0067, -0.0157, -0.0138, 0.0029, …]}
  ],
  "cost": 0.05,
  "balance": 1234.51
}

Request fields

FieldDescription
modelsiglip2.
image{"base64": "…"} or {"id": "img_…"} from an earlier response. Exactly one of image and texts.
texts1–64 strings of 1–1000 characters each.

Pricing examples

CallCredits
1 image
0.05
0.05
≈ US$0.00005 top-up
10 texts
10 × 0.01
0.1
≈ US$0.0001 top-up
1,000 images
1,000 × 0.05
50
≈ US$0.05 top-up
1,000 texts
1,000 × 0.01
10
≈ US$0.01 top-up

Limits

Images
JPEG, PNG, static WebP; up to 20 MiB and 40 megapixels
Coordinates
Pixels of the original image with EXIF orientation applied; masks can be smaller and carry their own size
Texts per call
1–64, each 1–1000 characters
Vector
768 dimensions, L2-normalised float32
Rate limit
Depends on the account tier; see GET /v1/models

Frequently asked questions

How is SigLIP 2 billed?

Images cost 0.05 credits each and texts 0.01 credits each. The model is in the public pool: 100 calls per day at no charge after sign-up. Failed calls cost nothing.

How are images matched to texts?

Image and text vectors share one space and are L2-normalised, so their dot product is the cosine similarity. Ranking candidate texts by that value gives zero-shot labels for an image.

Can an image and texts be sent together?

No. Each call carries exactly one of image and texts. Two calls, one for the image and one for the texts, produce vectors that can be compared.

Related models

Models and pricing

Foldbun Stack — pay-per-use vision model API

Call SigLIP 2 through the REST API; the docs list request and response formats.

Read the docsGet an API keyComing soon