API Endpoints
API Endpoints
Reference for the logo lookup endpoint
Base URL
All API requests use the following base URL and format:
GET https://logos.getquikturn.io/{domain}?token=pk_xxxAvailable Endpoints
The REST API exposes the logo lookup endpoint. For batch operations, streaming, and higher-resolution logos, use the server SDK with a secret key (sk_*).
Logo Lookup (302 Redirect)
GET /{domain}?token=pk_your_key
&size=128
&greyscale=true
&theme=darkExample:
curl -I "https://logos.getquikturn.io/apple.com?token=pk_your_key"Typical response:
HTTP/1.1 302 Found
Location: https://cdn.quikturn.io/logos/apple.com.png
Cache-Control: public, max-age=86400
X-RateLimit-Remaining: 482
X-RateLimit-Reset: 1706745600If a logo cannot be found, the service returns 404 with a plain-text message.
Errors
| Status | When it happens | Body |
|---|---|---|
| 400 | Missing/invalid domain | Plain text |
| 401 | Missing or malformed token | Plain text |
| 403 | Domain restriction or attribution failure | Plain text |
| 404 | Logo not found | Plain text |
| 429 | Rate limit exceeded | Plain text + Retry-After |
CORS
- If no domain restrictions are set on your key, responses include
Access-Control-Allow-Origin: *. - If domain restrictions are enabled, the
Origin/Referermust match your allowlist and CORS reflects the allowed origin.
Transformations
size(optional): pixel width. Default 128. Max 800. Aspect ratio preserved.greyscale(optional):true|1|yesto desaturate the logo.theme(optional):lightordarkto invert for contrast on light/dark backgrounds.- All transformations are applied at the edge via Cloudflare Image Resizing on top of the stored logo.
Server SDK Operations
The REST API serves single logo lookups. For advanced use cases, the server SDK provides:
| Operation | Method | Description |
|---|---|---|
| Single fetch | client.get(domain) | Returns Buffer + metadata, up to 1200px |
| Batch fetch | client.getMany(domains) | AsyncGenerator over multiple domains |
| Streaming | client.getStream(domain) | ReadableStream for large logos |
All server SDK operations use secret key authentication via the Authorization: Bearer header.
import { QuikturnLogos } from "@quikturn/logos/server";
const client = new QuikturnLogos({ secretKey: process.env.QT_SECRET_KEY! });
// Batch fetch
for await (const result of client.getMany(["apple.com", "google.com"])) {
console.log(result.domain, result.success);
}