Data Matrix Generator
curl --request POST \
--url https://api.iotools.cloud/v1/tool/data-matrix-generator \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputText": "SN-2026-0311-48291",
"shape": "square",
"moduleSize": "4"
}
'import requests
url = "https://api.iotools.cloud/v1/tool/data-matrix-generator"
payload = {
"inputText": "SN-2026-0311-48291",
"shape": "square",
"moduleSize": "4"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputText: 'SN-2026-0311-48291', shape: 'square', moduleSize: '4'})
};
fetch('https://api.iotools.cloud/v1/tool/data-matrix-generator', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.iotools.cloud/v1/tool/data-matrix-generator",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputText' => 'SN-2026-0311-48291',
'shape' => 'square',
'moduleSize' => '4'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.iotools.cloud/v1/tool/data-matrix-generator"
payload := strings.NewReader("{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.iotools.cloud/v1/tool/data-matrix-generator")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iotools.cloud/v1/tool/data-matrix-generator")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}"
response = http.request(request)
puts response.read_body{
"tool": "data-matrix-generator",
"tool_version": "1.0.1",
"outputs": {
"svg": "<svg viewBox=\"0 0 160 160\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16 144L144 144L144 136L136 136L136 128L128 128L128 136L120 136L120 128L112 128L112 136L88 136L88 128L112 128L112 120L120 120L120 128L128 128L128 104L120 104L120 112L104 112L104 96L88 96L88 88L104 88L104 80L96 80L96 72L88 72L88 48L72 48L72 56L80 56L80 64L64 64L64 72L56 72L56 80L72 80L72 88L80 88L80 104L72 104L72 112L80 112L80 128L72 128L72 136L64 136L64 128L56 128L56 136L48 136L48 128L40 128L40 136L24 136L24 120L32 120L32 112L40 112L40 104L32 104L32 96L24 96L24 48L48 48L48 40L56 40L56 16L48 16L48 24L40 24L40 16L32 16L32 32L40 32L40 40L24 40L24 16L16 16ZM136 128L144 128L144 120L136 120ZM48 120L64 120L64 112L48 112ZM88 120L88 112L96 112L96 120ZM136 112L144 112L144 104L136 104ZM40 104L64 104L64 96L56 96L56 80L48 80L48 64L40 64L40 56L32 56L32 72L40 72L40 80L32 80L32 88L48 88L48 96L40 96ZM128 104L136 104L136 96L128 96ZM64 96L72 96L72 88L64 88ZM112 96L120 96L120 88L112 88ZM136 96L144 96L144 88L136 88ZM128 88L136 88L136 80L128 80ZM104 80L128 80L128 72L112 72L112 64L96 64L96 72L104 72ZM136 80L144 80L144 72L136 72ZM128 72L136 72L136 64L144 64L144 56L128 56ZM48 64L64 64L64 56L56 56L56 48L48 48ZM112 64L120 64L120 56L112 56ZM96 56L104 56L104 48L96 48ZM120 56L128 56L128 48L120 48ZM56 48L72 48L72 40L80 40L80 24L72 24L72 32L64 32L64 40L56 40ZM104 48L112 48L112 40L120 40L120 32L128 32L128 24L120 24L120 16L112 16L112 32L96 32L96 40L104 40ZM128 48L144 48L144 40L136 40L136 32L128 32ZM136 32L144 32L144 24L136 24ZM64 24L72 24L72 16L64 16ZM80 24L88 24L88 16L80 16ZM96 24L104 24L104 16L96 16ZM128 24L136 24L136 16L128 16Z\" fill=\"#000000\" fill-rule=\"evenodd\" />\n</svg>\n"
},
"credits_used": 3,
"credits_remaining": null
}{
"type": "https://iotools.cloud/docs/errors/validation_error",
"title": "Invalid request",
"status": 400,
"code": "validation_error",
"detail": "One or more inputs are invalid — see `fields`.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"fields": {
"inputString": "Required"
}
}{
"type": "https://iotools.cloud/docs/errors/invalid_api_key",
"title": "Invalid API key",
"status": 401,
"code": "invalid_api_key",
"detail": "Provide 'Authorization: Bearer <key>'.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"code": "insufficient_credits",
"detail": "This call costs 1 credit and 0 remain in this month's allowance.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"credits_used": 0,
"credits_remaining": 0
}{
"type": "https://iotools.cloud/docs/errors/tool_not_allowed",
"title": "Tool not available over the API",
"status": 403,
"code": "tool_not_allowed",
"detail": "\"Background Remover\" is available on iotools.cloud but has no API endpoint.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/tool_not_found",
"title": "Tool not found",
"status": 404,
"code": "tool_not_found",
"detail": "No tool with that slug. See GET /v1/tools/list.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/payload_too_large",
"title": "Payload too large",
"status": 413,
"code": "payload_too_large",
"detail": "Request body exceeds this tool's size limit.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/rate_limited",
"title": "Rate limit exceeded",
"status": 429,
"code": "rate_limited",
"detail": "Too many requests. Retry in 30s.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"retry_after": 30
}{
"type": "https://iotools.cloud/docs/errors/processing_error",
"title": "Tool failed to run",
"status": 500,
"code": "processing_error",
"detail": "The tool failed to run. Please try again.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"credits_used": 0
}{
"type": "https://iotools.cloud/docs/errors/tool_disabled",
"title": "Tool temporarily disabled",
"status": 503,
"code": "tool_disabled",
"detail": "This tool is temporarily unavailable. Try again shortly.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}Generators
Data Matrix Generator
Generate a Data Matrix 2D barcode from text, a serial number, or any short string — square or rectangular symbol shape, configurable module size, output as a scalable SVG. Runs entirely in your browser.
POST
/
v1
/
tool
/
data-matrix-generator
Data Matrix Generator
curl --request POST \
--url https://api.iotools.cloud/v1/tool/data-matrix-generator \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputText": "SN-2026-0311-48291",
"shape": "square",
"moduleSize": "4"
}
'import requests
url = "https://api.iotools.cloud/v1/tool/data-matrix-generator"
payload = {
"inputText": "SN-2026-0311-48291",
"shape": "square",
"moduleSize": "4"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputText: 'SN-2026-0311-48291', shape: 'square', moduleSize: '4'})
};
fetch('https://api.iotools.cloud/v1/tool/data-matrix-generator', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.iotools.cloud/v1/tool/data-matrix-generator",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputText' => 'SN-2026-0311-48291',
'shape' => 'square',
'moduleSize' => '4'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.iotools.cloud/v1/tool/data-matrix-generator"
payload := strings.NewReader("{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.iotools.cloud/v1/tool/data-matrix-generator")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.iotools.cloud/v1/tool/data-matrix-generator")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputText\": \"SN-2026-0311-48291\",\n \"shape\": \"square\",\n \"moduleSize\": \"4\"\n}"
response = http.request(request)
puts response.read_body{
"tool": "data-matrix-generator",
"tool_version": "1.0.1",
"outputs": {
"svg": "<svg viewBox=\"0 0 160 160\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16 144L144 144L144 136L136 136L136 128L128 128L128 136L120 136L120 128L112 128L112 136L88 136L88 128L112 128L112 120L120 120L120 128L128 128L128 104L120 104L120 112L104 112L104 96L88 96L88 88L104 88L104 80L96 80L96 72L88 72L88 48L72 48L72 56L80 56L80 64L64 64L64 72L56 72L56 80L72 80L72 88L80 88L80 104L72 104L72 112L80 112L80 128L72 128L72 136L64 136L64 128L56 128L56 136L48 136L48 128L40 128L40 136L24 136L24 120L32 120L32 112L40 112L40 104L32 104L32 96L24 96L24 48L48 48L48 40L56 40L56 16L48 16L48 24L40 24L40 16L32 16L32 32L40 32L40 40L24 40L24 16L16 16ZM136 128L144 128L144 120L136 120ZM48 120L64 120L64 112L48 112ZM88 120L88 112L96 112L96 120ZM136 112L144 112L144 104L136 104ZM40 104L64 104L64 96L56 96L56 80L48 80L48 64L40 64L40 56L32 56L32 72L40 72L40 80L32 80L32 88L48 88L48 96L40 96ZM128 104L136 104L136 96L128 96ZM64 96L72 96L72 88L64 88ZM112 96L120 96L120 88L112 88ZM136 96L144 96L144 88L136 88ZM128 88L136 88L136 80L128 80ZM104 80L128 80L128 72L112 72L112 64L96 64L96 72L104 72ZM136 80L144 80L144 72L136 72ZM128 72L136 72L136 64L144 64L144 56L128 56ZM48 64L64 64L64 56L56 56L56 48L48 48ZM112 64L120 64L120 56L112 56ZM96 56L104 56L104 48L96 48ZM120 56L128 56L128 48L120 48ZM56 48L72 48L72 40L80 40L80 24L72 24L72 32L64 32L64 40L56 40ZM104 48L112 48L112 40L120 40L120 32L128 32L128 24L120 24L120 16L112 16L112 32L96 32L96 40L104 40ZM128 48L144 48L144 40L136 40L136 32L128 32ZM136 32L144 32L144 24L136 24ZM64 24L72 24L72 16L64 16ZM80 24L88 24L88 16L80 16ZM96 24L104 24L104 16L96 16ZM128 24L136 24L136 16L128 16Z\" fill=\"#000000\" fill-rule=\"evenodd\" />\n</svg>\n"
},
"credits_used": 3,
"credits_remaining": null
}{
"type": "https://iotools.cloud/docs/errors/validation_error",
"title": "Invalid request",
"status": 400,
"code": "validation_error",
"detail": "One or more inputs are invalid — see `fields`.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"fields": {
"inputString": "Required"
}
}{
"type": "https://iotools.cloud/docs/errors/invalid_api_key",
"title": "Invalid API key",
"status": 401,
"code": "invalid_api_key",
"detail": "Provide 'Authorization: Bearer <key>'.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/insufficient_credits",
"title": "Insufficient credits",
"status": 402,
"code": "insufficient_credits",
"detail": "This call costs 1 credit and 0 remain in this month's allowance.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"credits_used": 0,
"credits_remaining": 0
}{
"type": "https://iotools.cloud/docs/errors/tool_not_allowed",
"title": "Tool not available over the API",
"status": 403,
"code": "tool_not_allowed",
"detail": "\"Background Remover\" is available on iotools.cloud but has no API endpoint.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/tool_not_found",
"title": "Tool not found",
"status": 404,
"code": "tool_not_found",
"detail": "No tool with that slug. See GET /v1/tools/list.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/payload_too_large",
"title": "Payload too large",
"status": 413,
"code": "payload_too_large",
"detail": "Request body exceeds this tool's size limit.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}{
"type": "https://iotools.cloud/docs/errors/rate_limited",
"title": "Rate limit exceeded",
"status": 429,
"code": "rate_limited",
"detail": "Too many requests. Retry in 30s.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"retry_after": 30
}{
"type": "https://iotools.cloud/docs/errors/processing_error",
"title": "Tool failed to run",
"status": 500,
"code": "processing_error",
"detail": "The tool failed to run. Please try again.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11",
"credits_used": 0
}{
"type": "https://iotools.cloud/docs/errors/tool_disabled",
"title": "Tool temporarily disabled",
"status": 503,
"code": "tool_disabled",
"detail": "This tool is temporarily unavailable. Try again shortly.",
"request_id": "e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Response
Tool output
Show child attributes
Show child attributes
The tool's slug, echoing the {slug} in the request path.
Output-contract version for this tool.
Credits this call consumed, after any settlement refund. 0 when metering is disabled.
Credits left in the current monthly allowance, or null when metering is disabled.
Correlation id, also sent as x-request-id.
Was this page helpful?
⌘I