This documentation covers the available API endpoints, designed using the REST architecture. Each API endpoint returns a JSON response with standard HTTP response codes. API endpoints are secured and need a Bearer Authentication via an API Key.
To obtain a new API Key, first, register on https://dashboard.openqr.io. Once registered, access the user menu in the top right corner of the dashboard and navigate to the "API Keys" section. Here, you can easily generate multiple API keys as needed to integrate with a different services. Enjoy seamless access to our API and enhance your QR code experiences.
š Important: Your API Key is a crucial access token for OpenQR's services. Copy it and store it safely! Remember, for security reasons, API Keys are not stored in our database and won't be visible again. Treat it like a valuable secret to ensure smooth integration and protect your account.
The Folder API in OpenQR allows developers to manage and organize QR codes within separate folders programmatically. With this API, developers can efficiently create, retrieve, and update folders. This allows better to categorize and manage their QR code projects.
Update a folder for the authorized user by folder ID
folder_id required | integer Folder ID |
Request body to save Folder
name required | string [ 5 .. 255 ] characters Folder name |
{- "name": "demo"
}
{- "data": {
- "id": 6,
- "name": "Demo",
- "created_at": "2023-07-31T19:32:06.000000Z"
}
}
Create a new folder for the authorized user
Request body to save Folder
name required | string [ 5 .. 255 ] characters Folder name |
{- "name": "demo"
}
{- "data": {
- "id": 6,
- "name": "Demo",
- "created_at": "2023-07-31T19:32:06.000000Z"
}
}
use GuzzleHttp\Client; $client = new Client(); $response = $client->request('GET', 'https://api.openqr.io/api/v1/folders', [ 'headers' => [ 'Authorization' => 'Bearer api_key', 'Accept' => 'application/json', ] ]); echo $response->getBody()->getContents();
{- "data": [
- {
- "id": 6,
- "name": "Demo",
- "created_at": "2023-07-31T19:32:06.000000Z"
}
], - "links": {
- "first": 6,
- "last": 6,
- "prev": null,
}, - "meta": {
- "per_page": 20,
- "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
- "prev_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"
}
}
The QR Codes API in OpenQR enables developers to programmatically create, customize, and manage QR codes within their applications or systems. With the API, developers can integrate OpenQR's QR code generation capabilities seamlessly into their software, websites, or mobile apps.
Create a new QR Code for the authorized user.
Request body to save QR Code
name required | string [ 5 .. 255 ] characters QR code name |
type required | string (QRCodeType) Enum: "call" "call_static" "email" "email_static" "event" "event_static" "geo" "geo_static" "sms" "sms_static" "text" "text_static" "url" "url_static" "vcard" "vcard_static" "wifi" "wifi_static" |
required | URL QR Code Static/Dynamic type (object) or Text QR Code Static/Dynamic type (object) or Call QR Code Static/Dynamic type (object) or Email QR Code Static/Dynamic type (object) or Event QR Code Static/Dynamic type (object) or Geo QR Code Static/Dynamic type (object) or SMS QR Code Static/Dynamic type (object) or VCard QR Code Static/Dynamic type (object) or WIFI QR Code Static type (object) |
object (QRCodeDesign) |
{- "name": "Demo",
- "type": "url",
}
{- "data": {
- "id": "km0yYX0",
- "name": "Demo",
- "status": "public",
- "dynamic": true,
- "qr_code_folder_id": 0,
- "type": "url",
- "created_at": "2023-07-30T10:26:10.000000Z",
- "updated_at": "2023-07-30T10:26:10.000000Z"
}
}
use GuzzleHttp\Client; $client = new Client(); $response = $client->request('GET', 'https://api.openqr.io/api/v1/qr-codes', [ 'headers' => [ 'Authorization' => 'Bearer xxxxxx', 'Accept' => 'application/json', ] ]); echo $response->getBody()->getContents();
{- "data": [
- {
- "id": "km0yYX0",
- "name": "Demo",
- "status": "public",
- "dynamic": true,
- "qr_code_folder_id": 0,
- "type": "url",
- "created_at": "2023-07-30T10:26:10.000000Z",
- "updated_at": "2023-07-30T10:26:10.000000Z"
}
], - "links": {
- "first": 6,
- "last": 6,
- "prev": null,
}, - "meta": {
- "per_page": 20,
- "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
- "prev_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"
}
}
Update a QR Code for the authorized user by QR Code ID
qr_code_id required | integer QR Code ID |
Request body to save QR Code
name required | string [ 5 .. 255 ] characters QR code name |
type required | string (QRCodeType) Enum: "call" "call_static" "email" "email_static" "event" "event_static" "geo" "geo_static" "sms" "sms_static" "text" "text_static" "url" "url_static" "vcard" "vcard_static" "wifi" "wifi_static" |
required | URL QR Code Static/Dynamic type (object) or Text QR Code Static/Dynamic type (object) or Call QR Code Static/Dynamic type (object) or Email QR Code Static/Dynamic type (object) or Event QR Code Static/Dynamic type (object) or Geo QR Code Static/Dynamic type (object) or SMS QR Code Static/Dynamic type (object) or VCard QR Code Static/Dynamic type (object) or WIFI QR Code Static type (object) |
object (QRCodeDesign) |
{- "name": "Demo",
- "type": "url",
}
{- "data": {
- "id": "km0yYX0",
- "name": "Demo",
- "status": "public",
- "dynamic": true,
- "qr_code_folder_id": 0,
- "type": "url",
- "created_at": "2023-07-30T10:26:10.000000Z",
- "updated_at": "2023-07-30T10:26:10.000000Z"
}
}
Get a QR Code for the authorized user by QR Code ID
qr_code_id required | integer QR Code ID |
use GuzzleHttp\Client; $client = new Client(); $response = $client->request('GET', 'https://api.openqr.io/api/v1/qr-codes/{qr_code_id}', [ 'headers' => [ 'Authorization' => 'Bearer xxxxxx', 'Accept' => 'application/json', ] ]); echo $response->getBody()->getContents();
{- "data": {
- "id": "km0yYX0",
- "name": "Demo",
- "status": "public",
- "dynamic": true,
- "qr_code_folder_id": 0,
- "type": "url",
- "created_at": "2023-07-30T10:26:10.000000Z",
- "updated_at": "2023-07-30T10:26:10.000000Z"
}
}
Files API allows users to upload and manage custom images or files that can be integrated into QR codes generated through other API endpoints.
Users can upload image files (e.g., PNG, JPEG) to the server using a POST request to this endpoint. These uploaded files are stored securely on the server for future use.
Request body to upload file
file required | string <binary> File to upload. Accept only |
use GuzzleHttp\Client; $client = new Client(); $response = $client->request('POST', 'https://api.openqr.io/api/v1/files/qr-logos', [ 'headers' => [ 'Authorization' => 'Bearer api_key', 'Accept' => 'application/json', ], 'multipart' => [ 'name' => 'file', 'filename' => 'demo.png', 'Mime-Type'=> 'image/png', 'contents' => fopen( '/files_demo/demo.png', 'r' ), ] ] ); echo $response->getBody()->getContents();
{- "data": {
- "id": "XzC1zPwH",
- "name": "8087415_(1).png",
- "mime_type": "image/png",
- "public": true
}
}
Users can retrieve their uploaded files or public presetted as needed through this endpoint using unique file identifiers.
use GuzzleHttp\Client; $client = new Client(); $response = $client->request('GET', 'https://api.openqr.io/api/v1/files/qr-logos', [ 'headers' => [ 'Authorization' => 'Bearer api_key', 'Accept' => 'application/json', ] ]); echo $response->getBody()->getContents();
{- "data": [
- {
- "id": "XzC1zPwH",
- "name": "8087415_(1).png",
- "mime_type": "image/png",
- "public": true
}
], - "links": {
- "first": 6,
- "last": 6,
- "prev": null,
}, - "meta": {
- "per_page": 20,
- "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
- "prev_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyMy0wNy0zMCAxMDoyNjoxMCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"
}
}