QR-kodegenerator API

Generer merkede QR-koder (PNG/JPG/SVG) med former, farger per øye, logoer og kampanjerammer.

Hva kan du gjøre?
Egendefinerte former og farger

Punkt-/firkantmoduler + sirkulære/firkantede øyne, med farger per øye.

Senterlogoer

Plasser en logo i midten (last opp eller forhåndsinnstilt som "scan-me").

Kampanjerammer

Nedre banner, topptekst, snakkeboble, bånd, merke.

Lagre og CDN-klar

Lagre til disk og få en offentlig URL tilbake umiddelbart.

Prøv live
99.9 % Oppetid
Svar
20 req/s
0.01 Kreditter / forespørsel

Generate QR Code

POST https://api.yeb.to/v1/qr-code/generate
Parameter Type Req Description
api_keystringyesYour API key.
typestringyespage (Page Builder payload).
actionstringoptgenerate (default).
image_formatstringoptSVG (default) | PNG | JPG
image_widthintoptTarget width in px (default 500 for raster).
foreground_colorhexoptDefault #000000.
background_colorhexoptDefault #FFFFFF.
body_stylestringoptsquare (default) | dot — PNG/JPG only.
eye_stylestringoptsquare (default) | circle — PNG/JPG only.
eye_outer_color / eye_inner_colorhexoptGlobal per-eye colors; can be overridden per eye with eye1_*, eye2_*, eye3_*.
eye1_outer_color / eye1_inner_colorhexoptTop-left eye colors.
eye2_outer_color / eye2_inner_colorhexoptTop-right eye colors.
eye3_outer_color / eye3_inner_colorhexoptBottom-left eye colors.
qr_code_logostringoptno-logo (default) | scan-me | scan-me-square | upload
logo_path / logo_data_base64stringoptProvide when qr_code_logo=upload.
frame_namestringoptno-frame (default) | bottom-banner | top-header | speech-bubble | ribbon-tag | badge
frame_colorhexoptDefault #000000.
frame_text / frame_text_colorstring/hexopt“Scan me”, “Rate us”, etc.; default text color #FFFFFF.
frame_icon_namestringoptIcon file name (resolved via config('qr.icons_path')).
download0|1optIf 1, controller triggers download flow.
save0|1optWhen 1, image is saved and file_url/file_path are returned.
storage_disk / storage_folder / filename / filename_basestringoptApplied when save=1. In UI използваме filename_base.
include_bytes0|1optInclude base64 data URI in response (default 1; if save=1, default 0).
When type=page, pass:
page.versionintyesSchema version (UI използва 1).
page.theme.primary / page.theme.accenthexoptLanding theme colors.
page.layout.cols / page.layout.gapintoptGrid columns (desktop-only) and gap in px.
page.layout.sections.*objectoptenabled, collapsible, default_open, style (card|plain), radius, border, background.
page.blocks[]arrayyesList of blocks: { type, props, children }. Поддържани: hero, gallery, appBadges, video, mp3, pdf, socialLinks, event, coupon, rating, feedback, vcardPlus, text, button, spacer, divider.
curl -X POST https://api.yeb.to/v1/qr-code/generate \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","type":"page","action":"generate","image_format":"PNG","image_width":600,"foreground_color":"#111111","background_color":"#FFFFFF","body_style":"dot","eye_style":"circle","eye_outer_color":"#111111","eye_inner_color":"#111111","eye1_inner_color":"#FF4D4D","eye2_inner_color":"#FFB84D","eye3_inner_color":"#4DD2FF","qr_code_logo":"scan-me","frame_name":"bottom-banner","frame_color":"#111111","frame_text":"Scan me","frame_text_color":"#FFFFFF","frame_icon_name":"qr","save":1,"storage_disk":"public","storage_folder":"qr_codes","filename_base":"menu-q1","include_bytes":0,"page":{"version":1,"theme":{"primary":"#0ea5e9","accent":"#111111"},"layout":{"cols":2,"gap":12,"sections":{"enabled":false,"collapsible":false,"default_open":true,"style":"card","radius":12,"border":"1px solid rgba(255,255,255,.12)","background":"rgba(255,255,255,.03)"}},"blocks":[{"type":"hero","props":{"headline":"Winter Lookbook","description":"Short intro…","align":"center","cta":{"label":"SHOP NOW","href":"https://example.com"}}},{"type":"gallery","props":{"scroll":"horizontal","images":[{"url":"https://picsum.photos/seed/a/600/400"},{"url":"https://picsum.photos/seed/b/600/400"}]}},{"type":"button","props":{"label":"Open site","href":"https://yeb.to","variant":"primary","align":"center"}}]}}'
$payload = {
    "api_key": "YOUR_KEY",
    "type": "page",
    "action": "generate",
    "image_format": "PNG",
    "image_width": 600,
    "foreground_color": "#111111",
    "background_color": "#FFFFFF",
    "body_style": "dot",
    "eye_style": "circle",
    "eye_outer_color": "#111111",
    "eye_inner_color": "#111111",
    "eye1_inner_color": "#FF4D4D",
    "eye2_inner_color": "#FFB84D",
    "eye3_inner_color": "#4DD2FF",
    "qr_code_logo": "scan-me",
    "frame_name": "bottom-banner",
    "frame_color": "#111111",
    "frame_text": "Scan me",
    "frame_text_color": "#FFFFFF",
    "frame_icon_name": "qr",
    "save": 1,
    "storage_disk": "public",
    "storage_folder": "qr_codes",
    "filename_base": "menu-q1",
    "include_bytes": 0,
    "page": {
        "version": 1,
        "theme": {
            "primary": "#0ea5e9",
            "accent": "#111111"
        },
        "layout": {
            "cols": 2,
            "gap": 12,
            "sections": {
                "enabled": false,
                "collapsible": false,
                "default_open": true,
                "style": "card",
                "radius": 12,
                "border": "1px solid rgba(255,255,255,.12)",
                "background": "rgba(255,255,255,.03)"
            }
        },
        "blocks": [
            {
                "type": "hero",
                "props": {
                    "headline": "Winter Lookbook",
                    "description": "Short intro…",
                    "align": "center",
                    "cta": {
                        "label": "SHOP NOW",
                        "href": "https://example.com"
                    }
                }
            },
            {
                "type": "gallery",
                "props": {
                    "scroll": "horizontal",
                    "images": [
                        {
                            "url": "https://picsum.photos/seed/a/600/400"
                        },
                        {
                            "url": "https://picsum.photos/seed/b/600/400"
                        }
                    ]
                }
            },
            {
                "type": "button",
                "props": {
                    "label": "Open site",
                    "href": "https://yeb.to",
                    "variant": "primary",
                    "align": "center"
                }
            }
        ]
    }
};
$r = Http::post('https://api.yeb.to/v1/qr-code/generate', $payload);
print_r($r->json());
fetch('https://api.yeb.to/v1/qr-code/generate', {
  method: 'POST',
  headers: {'Content-Type':'application/json'},
  body: JSON.stringify({"api_key":"YOUR_KEY","type":"page","action":"generate","image_format":"PNG","image_width":600,"foreground_color":"#111111","background_color":"#FFFFFF","body_style":"dot","eye_style":"circle","eye_outer_color":"#111111","eye_inner_color":"#111111","eye1_inner_color":"#FF4D4D","eye2_inner_color":"#FFB84D","eye3_inner_color":"#4DD2FF","qr_code_logo":"scan-me","frame_name":"bottom-banner","frame_color":"#111111","frame_text":"Scan me","frame_text_color":"#FFFFFF","frame_icon_name":"qr","save":1,"storage_disk":"public","storage_folder":"qr_codes","filename_base":"menu-q1","include_bytes":0,"page":{"version":1,"theme":{"primary":"#0ea5e9","accent":"#111111"},"layout":{"cols":2,"gap":12,"sections":{"enabled":false,"collapsible":false,"default_open":true,"style":"card","radius":12,"border":"1px solid rgba(255,255,255,.12)","background":"rgba(255,255,255,.03)"}},"blocks":[{"type":"hero","props":{"headline":"Winter Lookbook","description":"Short intro…","align":"center","cta":{"label":"SHOP NOW","href":"https://example.com"}}},{"type":"gallery","props":{"scroll":"horizontal","images":[{"url":"https://picsum.photos/seed/a/600/400"},{"url":"https://picsum.photos/seed/b/600/400"}]}},{"type":"button","props":{"label":"Open site","href":"https://yeb.to","variant":"primary","align":"center"}}]}})
}).then(r => r.json()).then(console.log);
import requests, json
payload = {
    "api_key": "YOUR_KEY",
    "type": "page",
    "action": "generate",
    "image_format": "PNG",
    "image_width": 600,
    "foreground_color": "#111111",
    "background_color": "#FFFFFF",
    "body_style": "dot",
    "eye_style": "circle",
    "eye_outer_color": "#111111",
    "eye_inner_color": "#111111",
    "eye1_inner_color": "#FF4D4D",
    "eye2_inner_color": "#FFB84D",
    "eye3_inner_color": "#4DD2FF",
    "qr_code_logo": "scan-me",
    "frame_name": "bottom-banner",
    "frame_color": "#111111",
    "frame_text": "Scan me",
    "frame_text_color": "#FFFFFF",
    "frame_icon_name": "qr",
    "save": 1,
    "storage_disk": "public",
    "storage_folder": "qr_codes",
    "filename_base": "menu-q1",
    "include_bytes": 0,
    "page": {
        "version": 1,
        "theme": {
            "primary": "#0ea5e9",
            "accent": "#111111"
        },
        "layout": {
            "cols": 2,
            "gap": 12,
            "sections": {
                "enabled": false,
                "collapsible": false,
                "default_open": true,
                "style": "card",
                "radius": 12,
                "border": "1px solid rgba(255,255,255,.12)",
                "background": "rgba(255,255,255,.03)"
            }
        },
        "blocks": [
            {
                "type": "hero",
                "props": {
                    "headline": "Winter Lookbook",
                    "description": "Short intro…",
                    "align": "center",
                    "cta": {
                        "label": "SHOP NOW",
                        "href": "https://example.com"
                    }
                }
            },
            {
                "type": "gallery",
                "props": {
                    "scroll": "horizontal",
                    "images": [
                        {
                            "url": "https://picsum.photos/seed/a/600/400"
                        },
                        {
                            "url": "https://picsum.photos/seed/b/600/400"
                        }
                    ]
                }
            },
            {
                "type": "button",
                "props": {
                    "label": "Open site",
                    "href": "https://yeb.to",
                    "variant": "primary",
                    "align": "center"
                }
            }
        ]
    }
}
        r = requests.post('https://api.yeb.to/v1/qr-code/generate', headers={'Content-Type':'application/json'}, data=json.dumps(payload))
print(r.json())

Response Example

{
  "mime": "image/png",
  "ext": "png",
  "width": 720,
  "height": 880,
  "saved": true,
  "file_url": "https://cdn.your-site/qr_codes/2025/08/21/qr-...png",
  "file_path": "qr_codes/2025/08/21/qr-...png",
  "scan_url": "https://yeb.to/s/abc123",
  "meta": {
    "format": "PNG",
    "logo": "scan-me",
    "shape": { "body":"dot", "eye":"circle" },
    "colors": {
      "foreground":"#111111","background":"#FFFFFF",
      "eye_outer":"#111111","eye_inner":"#111111",
      "eye1_inner":"#FF4D4D","eye2_inner":"#FFB84D","eye3_inner":"#4DD2FF"
    },
    "frame": { "name":"bottom-banner","color":"#111111","text":"Scan me","textColor":"#FFFFFF","icon":"qr" },
    "download": false,
    "saved": true,
    "type": "page",
    "page": { "version": 1 }
  },
  "data_base64": null
}
{
  "error": "Validation failed: page.blocks is required for type=page",
  "code": 422
}

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

qr-code/generate

qr-code/generate 0.0100 credits

Parameters

API Key
body · string · required
Type
body · string · required
Action
body · string
Image Format
body · string
Image Width
body · string
Foreground Color
body · string
Background Color
body · string
Body Style
body · string
Eye Style
body · string
Eye Outer Color
body · string
Eye Inner Color
body · string
Eye1 Outer Color
body · string
Eye1 Inner Color
body · string
Eye2 Outer Color
body · string
Eye2 Inner Color
body · string
Eye3 Outer Color
body · string
Eye3 Inner Color
body · string
Logo Mode
body · string
Logo Path
body · string
Logo Data (base64)
body · string
Frame
body · string
Frame Color
body · string
Frame Text
body · string
Frame Text Color
body · string
Frame Icon
body · string
Download
body · string
Save
body · string
Storage Disk
body · string
Storage Folder
body · string
Filename
body · string
Filename Base
body · string
Include Base64
body · string
Page Version
body · string · required
Theme Primary
body · string
Theme Accent
body · string
Layout Cols
body · string
Layout Gap
body · string
Sections Enabled
body · string
Sections Collapsible
body · string
Sections Default Open
body · string
Sections Style
body · string
Sections Radius
body · string
Sections Border
body · string
Sections Background
body · string
Blocks
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

QR-kodegenerator API — Practical Guide

Create branded QR codes, auto-build mobile pages (“experiences”), and track scans & custom events. Use this guide to ship working QR flows fast — with the right format, styling, storage, and analytics.

#What this API solves

Most QR projects fail on the details: wrong format for print, unreadable colors, no landing, zero tracking. Our suite covers the full funnel: image generationmobile page (“experience”)scan/event logging.

#Endpoints & when to use them

#POST /v1/qr-code/generate — Render a QR image

  • Best for: You already have a target URL/text and only need an image (SVG/PNG/JPG).
  • Inputs: qr_code_text + styling (colors, eye/body styles, logo, frame), output controls (save, download, include_bytes).
  • Output: mime, ext, width/height, file_url/file_path (when saved), optional data_base64, plus a meta map describing styling.
  • Format tip: Use SVG for print (infinite scale). Use PNG with frames/logos for digital flyers.

#POST /v1/qr-experience/generate — Create a mobile “experience” + QR

  • Best for: No website? Need a campaign page? Pass type and content; we build the page and generate the QR pointing to it.
  • Types: page (Page Builder JSON), url, text, rating, mp3, pdf, social, images, app, videos, event (with calendar), coupon, feedback, vcard_plus.
  • Output: scan_url (public), experience (id/code/type/title), and the same QR image payload as the generator.
  • Why it matters: You control the full UX post-scan, can update content later, and track scans + custom actions.

#POST /v1/qr-scan/scan — Log a scan

  • Best for: Server-side logging when your scan route is hit (we also auto-log from our hosted routes).
  • Identify experience via: experience_id or pair type + code.
  • Output: ok, experience_id, code, type.

#POST /v1/qr-scan/event — Log a custom event

  • Best for: Button clicks (cta_click), ratings submitted, downloads, etc., tied back to an experience.
  • Inputs: experience (id or type+code), event (string), optional value, optional meta.
  • Output: ok.

#Quick start

# 1) Plain QR image (SVG; best for print)
curl -sX POST "https://api.yeb.to/v1/qr-code/generate" \
 -H "Accept: application/json" -H "Content-Type: application/json" \
 -d '{ "api_key":"<YOUR_KEY>", "qr_code_text":"https://example.com/summer-menu", "image_format":"SVG" }'
# 2) Experience page + QR (gallery landing with CTA)
curl -sX POST "https://api.yeb.to/v1/qr-experience/generate" \
 -H "Accept: application/json" -H "Content-Type: application/json" \
 -d '{ "api_key":"<YOUR_KEY>", "type":"page",
       "page":{ "version":1, "theme":{"primary":"#0ea5e9","accent":"#111111"},
         "layout":{"cols":2,"gap":12},
         "blocks":[
           {"type":"hero","props":{"headline":"Winter Lookbook","description":"Short intro…","align":"center",
              "cta":{"label":"SHOP NOW","href":"https://example.com"}}},
           {"type":"gallery","props":{"scroll":"horizontal","images":[
              {"url":"https://picsum.photos/seed/a/600/400"},{"url":"https://picsum.photos/seed/b/600/400"}]}},
           {"type":"button","props":{"label":"Open site","href":"https://yeb.to","variant":"primary","align":"center"}}
         ]},
       "image_format":"PNG","image_width":600,
       "qr_code_logo":"scan-me","frame_name":"bottom-banner","frame_text":"Scan me",
       "save":1,"storage_disk":"public","storage_folder":"qr_codes","filename_base":"winter-lookbook" }'
# 3) Log a custom event (CTA click)
curl -sX POST "https://api.yeb.to/v1/qr-scan/event" \
 -H "Accept: application/json" -H "Content-Type: application/json" \
 -d '{ "api_key":"<YOUR_KEY>", "type":"page", "code":"<experience_code>",
       "event":"cta_click", "value":"shop_now", "meta":{"source":"landing"}}'

#Full “everything on” request (covers most options)

Use this to see how fields combine. Trim what you don’t need.

POST /v1/qr-experience/generate
{
  "api_key": "YOUR_KEY",
  "type": "page",

  "image_format": "PNG",
  "image_width": 720,
  "foreground_color": "#111111",
  "background_color": "#FFFFFF",

  "body_style": "dot",
  "eye_style":  "circle",
  "eye_outer_color": "#111111",
  "eye_inner_color": "#111111",
  "eye1_outer_color": "#111111",
  "eye1_inner_color": "#FF4D4D",
  "eye2_outer_color": "#111111",
  "eye2_inner_color": "#FFB84D",
  "eye3_outer_color": "#111111",
  "eye3_inner_color": "#4DD2FF",

  "qr_code_logo": "scan-me",
  "frame_name": "bottom-banner",
  "frame_color": "#111111",
  "frame_text": "Scan me",
  "frame_text_color": "#FFFFFF",
  "frame_icon_name": "qr",

  "save": 1,
  "download": 0,
  "include_bytes": 0,
  "storage_disk": "public",
  "storage_folder": "qr_codes",
  "filename_base": "campaign-q1",

  "page": {
    "version": 1,
    "theme": { "primary": "#0ea5e9", "accent": "#111111" },
    "layout": {
      "cols": 2, "gap": 12,
      "sections": { "enabled": false, "collapsible": false, "default_open": true,
        "style": "card", "radius": 12, "border": "1px solid rgba(255,255,255,.12)", "background": "rgba(255,255,255,.03)" }
    },
    "blocks": [
      { "type": "hero", "props": { "headline": "Winter Lookbook", "description": "Short intro…", "align": "center",
          "cta": { "label": "SHOP NOW", "href": "https://example.com?utm_source=qr&utm_campaign=winter" } } },
      { "type": "gallery", "props": { "scroll": "horizontal", "images": [
          { "url": "https://picsum.photos/seed/a/600/400" }, { "url": "https://picsum.photos/seed/b/600/400" } ] } },
      { "type": "video", "props": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } },
      { "type": "pdf",   "props": { "url": "https://example.com/catalog.pdf", "title": "Catalog" } },
      { "type": "appBadges", "props": { "ios":"https://apps.apple.com/app/id000000", "android":"https://play.google.com/store/apps/details?id=app" } },
      { "type": "socialLinks", "props": { "items":[
          {"name":"Instagram","url":"https://instagram.com/brand"},{"name":"TikTok","url":"https://tiktok.com/@brand"} ] } },
      { "type": "button", "props": { "label":"Open site", "href":"https://yeb.to", "variant":"primary", "align":"center" } }
    ]
  }
}

#Parameters that actually matter

Image generation

ParamTypeRequiredWhy it matters
qr_code_textstringYes (generator)The content to encode. For experiences we auto-use scan_url.
image_formatSVG|PNG|JPGNoSVG for print; PNG for most branded/all-color cases; JPG is smallest but lossy.
foreground_color/background_color#RRGGBBNoEnsure 40%+ contrast. Avoid light-on-light; scanners fail.
body_style/eye_stylestringNo“dot” body + “circle” eyes feels modern; keep eyes visible for reliability.
qr_code_logoenumNo“scan-me” boosts intent. For uploads, ensure 15–20% center area only.
frame_name + text/iconenumNoFrames add CTA without redesigning posters; great for flyers/menus.
save/download/include_bytes0|1Nosave=1 returns file_url. download=1 triggers file response; we auto-force bytes. Default bytes: 1, but 0 if save=1 to keep payloads light.

Experience generation

ParamTypeRequiredPractical guidance
typeenumYesPick the smallest that solves your flow. page is the most flexible.
page.versionintYes (page)Schema version; current UI uses 1.
page.blocks[]arrayYes (page)Hero, gallery, video, mp3, pdf, socialLinks, event, coupon, rating, feedback, vcardPlus, text, button, spacer, divider.
event.*mixedYes (event)Automatically generates an .ics file; perfect for meetups/concerts.
vcard_plus.*mixedYes (vcard_plus)Generates a downloadable .vcf and optional photo avatar.

Scan & events

ParamTypeRequiredNotes
experience_id OR type+codeint / stringYesEither pass the numeric id or the pair; avoid both.
eventstringYes (for /event)Example: cta_click, rating_submitted, download.
valuestring|numberNoOptional payload (e.g., rating value, button id).
metaobjectNoExtra attribution (campaign, placement). IP/UA/referrer are auto-recorded server-side.

#Reading & acting on responses

QR image (generator)

{
  "mime":"image/png","ext":"png","width":720,"height":880,
  "saved":true,"file_url":"https://cdn.your-site/qr_codes/2025/08/21/qr-...png",
  "file_path":"qr_codes/2025/08/21/qr-...png",
  "meta":{"format":"PNG","logo":"scan-me","shape":{"body":"dot","eye":"circle"}},
  "data_base64": null
}
  • Store file_url for reuse. Keep meta if you render previews.
  • Large payloads? Set include_bytes=0 and rely on CDN URLs.

Experience + QR

{
  "scan_url":"https://yeb.to/s/abc123",
  "experience":{"id":1902,"code":"abc123","type":"page","title":"Winter Lookbook"},
  "mime":"image/png","ext":"png","width":720,"height":880,
  "saved":true,"file_url":"https://.../qr_codes/.../campaign-q1.png",
  "meta":{ "...": "..." }, "data_base64": null
}
  • scan_url is the URL to print/embed into any QR.
  • Use qr-scan/event to track CTA clicks (e.g., “Get tickets”).

#Practical recipes

  • Print-ready assets: Prefer SVG. Keep a 4-module quiet zone; test from 30–50 cm.
  • Brand triad: Per-eye inner colors (eye1/2/3_inner_color) for brand palettes without hurting readability.
  • Events/RSVP: type=event auto-generates .ics; add a CTA to a ticketing URL.
  • vCard at conferences: type=vcard_plus produces a downloadable contact card + avatar.
  • Attribution: Append ?utm_source=qr to external links inside page blocks; also log /event on click.

#Errors & safeguards

  • 422 — Validation (e.g., page.blocks missing for type=page).
  • 404 — Experience not found (wrong type/code pair).
  • 410 — Experience inactive/expired.
  • download=1 forces raw bytes; prefer save=1 + CDN for production.

#API Changelog (QR Suite)

2025-11-05
Kitchen-sink request sample. Added full example covering most qr-experience/generate and QR styling options.
2025-11-03
Event & Feedback upgrades. event now supports cover images; feedback adds display=wizard and cover support.
2025-11-02
Scan logging API. Exposed /v1/qr-scan/scan and /v1/qr-scan/event for server-side tracking with IP/UA/referrer capture.
2025-10-28
Output payload hardening. include_bytes defaults to 0 when save=1; frames and logos documented in meta.
2025-10-20
Experiences v1. Added Page Builder (type=page) with blocks (hero, gallery, video, mp3, pdf, socialLinks, event, coupon, rating, feedback, vcardPlus, text, button, spacer, divider).

Use the endpoint playgrounds on this page to test payloads and lock in your defaults (format, logo/frame, storage path).

Ofte stilte spørsmål

SVG er ideelt for trykk og høyoppløselige skjermer (vektor). PNG/JPG er raster; bruk dem når du trenger egendefinerte former, farger per øye eller rammer.

Bruk mørke moduler på lys bakgrunn, hold god kontrast, unngå travle bilder bak koden, og overskrid ikke ~25–30 % logostørrelse.

Vi bruker Høy (H), omtrent opptil ~30 % skadetoleranse under ideelle forhold.

Ja, 4 modulers marg rundt QR-koden overholdes.

Rammer brukes på rasterutganger (PNG/JPG). SVG bruker kun basis-QR.

Hex #RRGGBB. Ugyldige verdier faller tilbake til #000000.

På den konfigurerte Laravel-disken (standard public) under {folder}/YYYY/MM/DD. API-et returnerer file_url og file_path.

Når include_bytes=1, returnerer vi en Data URI-streng (f.eks. data:image/png;base64,...) for direkte innebygging.

Ja. Hver forespørsel, selv de som resulterer i feil, forbruker kreditter. Kredittene dine er knyttet til antall forespørsler, uavhengig av suksess eller feil. Hvis feilen tydelig skyldes et plattformproblem på vår side, gjenoppretter vi de berørte kredittene (ingen kontantrefusjon).

Kontakt oss på [email protected]. Vi tar tilbakemeldinger på alvor—hvis feilrapporten eller funksjonsforespørselen din er meningsfull, kan vi fikse eller forbedre API-et raskt og gi deg 50 gratis kreditter som takk.

Det avhenger av API-et og noen ganger til og med av endepunktet. Noen endepunkter bruker data fra eksterne kilder, som kan ha strengere grenser. Vi håndhever også grenser for å forhindre misbruk og holde plattformen stabil. Sjekk dokumentasjonen for den spesifikke grensen for hvert endepunkt.

Vi opererer med et kredittsystem. Kreditter er forhåndsbetalte, ikke-refunderbare enheter du bruker på API-kall og verktøy. Kreditter forbrukes etter FIFO-prinsippet (eldste først) og er gyldige i 12 måneder fra kjøpsdatoen. Dashbordet viser hver kjøpsdato og dens utløp.

Ja. Alle kjøpte kreditter (inkludert brøkdeler) er gyldige i 12 måneder fra kjøpet. Ubrukte kreditter utløper automatisk og slettes permanent ved slutten av gyldighetsperioden. Utløpte kreditter kan ikke gjenopprettes eller konverteres til kontanter eller annen verdi. Overgangsregel: kreditter kjøpt før 22. sep. 2025 behandles som kjøpt 22. sep. 2025 og utløper 22. sep. 2026 (med mindre en tidligere utløpsdato ble oppgitt ved kjøpet).

Ja—innenfor gyldighetsperioden. Ubrukte kreditter forblir tilgjengelige og overføres fra måned til måned til de utløper 12 måneder etter kjøpet.

Kreditter er ikke-refunderbare. Kjøp bare det du trenger—du kan alltid fylle på senere. Hvis en plattformfeil forårsaker en mislykket belastning, kan vi gjenopprette de berørte kredittene etter undersøkelse. Ingen kontantrefusjon.

Prisene er satt i kreditter, ikke dollar. Hvert endepunkt har sin egen pris—se merket «Kreditter / forespørsel» ovenfor. Du vet alltid nøyaktig hva du bruker.
← Tilbake til API-er