Transform your applications with the most comprehensive QR code API on the market. Generate 8 different QR code types with extensive customization options, lightning-fast performance, and enterprise-grade reliability.
Mobile Applications
E-commerce & Retail
Marketing & Events
Business & Professional
// Generate a custom QR code in 3 lines
const response = await fetch('/api/v1/qr/url', {
method: 'POST',
body: JSON.stringify({
url: 'https://yourapp.com',
options: { foreground_color: '#FF6B35', size: 12 }
})
});
Feature | Our API | Competitors |
---|---|---|
QR Code Types | 8 Types | 3-5 Types |
Custom Colors | Full Hex Support | Limited/Basic |
Output Formats | PNG/SVG/PDF | PNG Only |
Response Time | <200ms | 350-500ms |
Documentation | Interactive | Basic/Limited |
Error Correction | 4 Levels | 1-2 Levels |
Perfect for developers building modern applications that need reliable, customizable QR code generation with enterprise-level performance and support.
Transform your app with professional QR codes. Start with our free tier and scale as you grow.
Generate a QR code for a website URL with full customization options including colors, shapes, formats, and error correction levels.
Generate URL QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAIAAAD0S4FSAAAEnk...",
"content": "https://northflank.com",
"format": "PNG",
"options": {
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"size": 12,
"border": 4,
"error_correction": "M",
"format": "PNG",
"module_drawer": "square"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16851/generate+url+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"url": "https://northflank.com",
"options": {
"size": 12,
"format": "PNG",
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"module_drawer": "square",
"error_correction": "M"
}
}'
Generate a QR code containing plain text content with custom styling options for colors, shapes, and output formats.
Generate Text QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAA...",
"content": "Hello World! This is a custom QR code with text content.",
"format": "JPEG",
"options": {
"foreground_color": "#2563eb",
"background_color": "#ffffff",
"size": 10,
"border": 4,
"error_correction": "M",
"format": "JPEG",
"module_drawer": "circle"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16853/generate+text+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"text": "Hello World! This is a custom QR code with text content.",
"options": {
"format": "JPEG",
"size": 10,
"foreground_color": "#2563eb",
"background_color": "#ffffff",
"module_drawer": "circle",
"error_correction": "M"
}
}'
Generate a QR code that initiates a phone call to the specified number when scanned with a mobile device.
Generate Phone QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAIAAAD0S4FSAAAEnk...",
"content": "tel:+1234567890",
"format": "PNG",
"options": {
"foreground_color": "#059669",
"background_color": "#FFFFFF",
"size": 10,
"border": 4,
"error_correction": "M",
"format": "PNG",
"module_drawer": "rounded"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16855/generate+phone+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"phone": "+1234567890",
"options": {
"format": "PNG",
"size": 10,
"foreground_color": "#059669",
"background_color": "#FFFFFF",
"module_drawer": "rounded",
"error_correction": "M"
}
}'
Generate a QR code containing GPS coordinates that opens the default maps application with the specified location.
Generate Location QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAIAAAD0S4FSAAAEnk...",
"content": "geo:40.7128,-74.0060",
"format": "PNG",
"options": {
"foreground_color": "#ea580c",
"background_color": "#fed7aa",
"size": 10,
"border": 4,
"error_correction": "M",
"format": "PNG",
"module_drawer": "circle"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16859/generate+location+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"latitude": 40.7128,
"longitude": -74.0060,
"options": {
"format": "PNG",
"size": 10,
"foreground_color": "#ea580c",
"background_color": "#fed7aa",
"module_drawer": "circle",
"error_correction": "M"
}
}'
Generate a QR code that opens the default email client with pre-filled recipient, subject line, and message body.
Generate Email QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAIAAAD0S4FSAAAEnk...",
"content": "mailto:[email protected]?subject=QR Code Inquiry&body=Hello, I found your contact information via QR code.",
"format": "PNG",
"options": {
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"size": 12,
"border": 4,
"error_correction": "M",
"format": "PNG",
"module_drawer": "square"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16854/generate+email+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"email": "[email protected]",
"subject": "QR Code Inquiry",
"body": "Hello, I found your contact information via QR code.",
"options": {
"format": "PNG",
"size": 12,
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"module_drawer": "square",
"error_correction": "M"
}
}'
Generate a QR code that opens the SMS app with a pre-filled phone number and message when scanned.
Generate SMS QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjkwIiBoZWlnaHQ9IjI5MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4...",
"content": "sms:+1234567890?body=Hello! This message was sent via QR code.",
"format": "SVG",
"options": {
"foreground_color": "#dc2626",
"background_color": "#FFFFFF",
"size": 10,
"border": 4,
"error_correction": "M",
"format": "SVG",
"module_drawer": "square"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16856/generate+sms+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"phone": "+1234567890",
"message": "Hello! This message was sent via QR code.",
"options": {
"format": "SVG",
"size": 10,
"foreground_color": "#dc2626",
"background_color": "#FFFFFF",
"module_drawer": "square",
"error_correction": "M"
}
}'
Generate a QR code for automatic WiFi network connection that allows users to connect to a network without manually entering credentials.
Generate WiFi QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:application/pdf;base64,JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFI...",
"content": "WIFI:T:WPA;S:MyWiFiNetwork;P:mypassword123;H:false;;",
"format": "PDF",
"options": {
"foreground_color": "#7c3aed",
"background_color": "#FFFFFF",
"size": 20,
"border": 4,
"error_correction": "M",
"format": "PDF",
"module_drawer": "square"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16858/generate+wifi+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"ssid": "MyWiFiNetwork",
"password": "mypassword123",
"encryption": "WPA",
"options": {
"format": "PDF",
"size": 20,
"foreground_color": "#7c3aed",
"background_color": "#FFFFFF",
"module_drawer": "square",
"error_correction": "M"
}
}'
Generate a QR code containing complete contact information in vCard format that can be saved directly to phone contacts.
Generate vCard QR Code - Endpoint Features
Object | Description |
---|---|
Request Body |
[Required] Json |
{
"success": true,
"data": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAIAAAD0S4FSAAAEnk...",
"content": "BEGIN:VCARD\nVERSION:3.0\nFN:John Doe\nORG:Acme Corp\nTITLE:Software Engineer\nTEL:+1234567890\nEMAIL:[email protected]\nURL:https://johndoe.com\nADR:;;123 Main St;New York;NY;10001;USA\nEND:VCARD",
"format": "PNG",
"options": {
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"size": 15,
"border": 4,
"error_correction": "H",
"format": "PNG",
"module_drawer": "square"
}
}
}
curl --location --request POST 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16857/generate+vcard+qr+code' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"name": "John Doe",
"organization": "Acme Corp",
"title": "Software Engineer",
"phone": "+1234567890",
"email": "[email protected]",
"website": "https://johndoe.com",
"address": "123 Main St",
"city": "New York",
"state": "NY",
"zipcode": "10001",
"country": "USA",
"options": {
"format": "PNG",
"size": 15,
"foreground_color": "#000000",
"background_color": "#FFFFFF",
"module_drawer": "square",
"error_correction": "H"
}
}'
Check the API health status and uptime to verify service availability.
{"service":"QR Code Generator API","status":"healthy","timestamp":"2025-08-18 23:54:59.351785","version":"1.0.0"}
curl --location --request GET 'https://zylalabs.com/api/9326/qr+code+generator+api+pro/16852/health+check' --header 'Authorization: Bearer YOUR_API_KEY'
Header | Description |
---|---|
Authorization
|
[Required] Should be Bearer access_key . See "Your API Access Key" above when you are subscribed. |
No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.
Each endpoint returns a JSON object containing a success status and a data field. The data field includes the generated QR code in Base64 format, the original content (e.g., URL, text), the output format, and the customization options used (like colors and size).
The key fields in the response data include `success` (boolean), `qr_code` (Base64 encoded image), `content` (original input), `format` (output format), and `options` (customization details like colors, size, and error correction level).
Parameters vary by endpoint but generally include `url`, `text`, `email`, `phone`, `size`, `foreground_color`, `background_color`, `border`, and `error_correction`. Each parameter allows for extensive customization of the generated QR code.
The response data is organized in a JSON structure. It contains a top-level `success` field indicating the operation's success, followed by a `data` object that encapsulates the QR code details, including the generated image and customization options.
Each endpoint provides specific types of information based on its function, such as URLs for web links, text for messages, email addresses for email QR codes, phone numbers for calls, and GPS coordinates for locations, all customizable with various options.
Users can utilize the returned data by decoding the Base64 `qr_code` to display or store the QR code image. The `content` field provides the original data, while `options` can guide further customization or adjustments in future requests.
Typical use cases include generating QR codes for marketing campaigns, sharing contact information via vCards, enabling quick WiFi access in venues, and facilitating instant messaging or calling through SMS and phone QR codes.
Data accuracy is maintained through rigorous testing and validation processes during QR code generation. The API ensures that the generated codes correctly represent the input data, and error correction levels help enhance scanning reliability.
Users can customize QR codes with options such as `foreground_color`, `background_color`, `size`, `border`, and `error_correction`. For example, a URL QR code can be generated with a specific hex color for the foreground and a chosen size between 1-40 modules, allowing for tailored designs.
Users can enhance scannability by selecting appropriate error correction levels (L, M, Q, H) and ensuring sufficient contrast between foreground and background colors. Higher error correction levels allow QR codes to remain functional even if partially damaged.
The API supports eight QR code types: URL, Text, Email, Phone, SMS, vCard, WiFi, and Location. Each type serves specific purposes, such as sharing links, contact information, or enabling quick WiFi access.
Generated QR codes can be returned in three formats: PNG, SVG, and PDF. This flexibility allows users to choose the best format for their application, whether for web use, print, or digital sharing.
Users can utilize the interactive API explorer provided in the documentation to test endpoints live. This allows for experimentation with different parameters and immediate feedback on the generated QR codes.
The `module_drawer` parameter allows users to choose the shape of the QR code modules, with options like square, rounded corners, or circular. This customization can enhance the visual appeal of the QR code while maintaining functionality.
Each endpoint is designed to handle specific data types, such as URLs for web links or vCards for contact information. Users must select the appropriate endpoint based on the data they wish to encode, ensuring accurate QR code generation.
Users should refer to the detailed parameter guides in the documentation for troubleshooting. Common issues may include invalid input data or unsupported parameter values, which can be resolved by following the provided examples and guidelines.
Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.
Prices are listed in USD (United States Dollar), EUR (Euro), CAD (Canadian Dollar), AUD (Australian Dollar), and GBP (British Pound). We accept all major debit and credit cards. Our payment system uses the latest security technology and is powered by Stripe, one of the world's most reliable payment companies. If you have any trouble paying by card, just contact us at [email protected]
Additionally, if you already have an active subscription in any of these currencies (USD, EUR, CAD, AUD, GBP), that currency will remain for subsequent subscriptions. You can change the currency at any time as long as you don't have any active subscriptions.
The local currency shown on the pricing page is based on the country of your IP address and is provided for reference only. The actual prices are in USD (United States Dollar). When you make a payment, the charge will appear on your card statement in USD, even if you see the equivalent amount in your local currency on our website. This means you cannot pay directly with your local currency.
Occasionally, a bank may decline the charge due to its fraud protection settings. We suggest reaching out to your bank initially to check if they are blocking our charges. Also, you can access the Billing Portal and change the card associated to make the payment. If these does not work and you need further assistance, please contact our team at [email protected]
Prices are determined by a recurring monthly or yearly subscription, depending on the chosen plan.
API calls are deducted from your plan based on successful requests. Each plan comes with a specific number of calls that you can make per month. Only successful calls, indicated by a Status 200 response, will be counted against your total. This ensures that failed or incomplete requests do not impact your monthly quota.
Zyla API Hub works on a recurring monthly subscription system. Your billing cycle will start the day you purchase one of the paid plans, and it will renew the same day of the next month. So be aware to cancel your subscription beforehand if you want to avoid future charges.
To upgrade your current subscription plan, simply go to the pricing page of the API and select the plan you want to upgrade to. The upgrade will be instant, allowing you to immediately enjoy the features of the new plan. Please note that any remaining calls from your previous plan will not be carried over to the new plan, so be aware of this when upgrading. You will be charged the full amount of the new plan.
To check how many API calls you have left for the current month, refer to the 'X-Zyla-API-Calls-Monthly-Remaining' field in the response header. For example, if your plan allows 1,000 requests per month and you've used 100, this field in the response header will indicate 900 remaining calls.
To see the maximum number of API requests your plan allows, check the 'X-Zyla-RateLimit-Limit' response header. For instance, if your plan includes 1,000 requests per month, this header will display 1,000.
The 'X-Zyla-RateLimit-Reset' header shows the number of seconds until your rate limit resets. This tells you when your request count will start fresh. For example, if it displays 3,600, it means 3,600 seconds are left until the limit resets.
Yes, you can cancel your plan anytime by going to your account and selecting the cancellation option on the Billing page. Please note that upgrades, downgrades, and cancellations take effect immediately. Additionally, upon cancellation, you will no longer have access to the service, even if you have remaining calls left in your quota.
You can contact us through our chat channel to receive immediate assistance. We are always online from 8 am to 5 pm (EST). If you reach us after that time, we will get back to you as soon as possible. Additionally, you can contact us via email at [email protected]
To give you the opportunity to experience our APIs without any commitment, we offer a 7-day free trial that allows you to make up to 50 API calls at no cost. This trial can be used only once, so we recommend applying it to the API that interests you the most. While most of our APIs offer a free trial, some may not. The trial concludes after 7 days or once you've made 50 requests, whichever occurs first. If you reach the 50 request limit during the trial, you will need to "Start Your Paid Plan" to continue making requests. You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab. Alternatively, if you don't cancel your subscription before the 7th day, your free trial will end, and your plan will automatically be billed, granting you access to all the API calls specified in your plan. Please keep this in mind to avoid unwanted charges.
After 7 days, you will be charged the full amount for the plan you were subscribed to during the trial. Therefore, it's important to cancel before the trial period ends. Refund requests for forgetting to cancel on time are not accepted.
When you subscribe to an API free trial, you can make up to 50 API calls. If you wish to make additional API calls beyond this limit, the API will prompt you to perform an "Start Your Paid Plan." You can find the "Start Your Paid Plan" button in your profile under Subscription -> Choose the API you are subscribed to -> Pricing tab.
Payout Orders are processed between the 20th and the 30th of each month. If you submit your request before the 20th, your payment will be processed within this timeframe.
Service Level:
100%
Response Time:
114.38ms
Service Level:
100%
Response Time:
204.47ms
Service Level:
100%
Response Time:
1,046.66ms
Service Level:
100%
Response Time:
552.33ms
Service Level:
100%
Response Time:
605.29ms
Service Level:
100%
Response Time:
186.72ms
Service Level:
100%
Response Time:
218.72ms
Service Level:
80%
Response Time:
2,638.14ms
Service Level:
100%
Response Time:
961.69ms
Service Level:
100%
Response Time:
594.57ms