Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the QRFLOW.codes API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fqrflow.codes%2Fqrflow" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fqrflow.codes%2Fqrflow" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with QRFLOW.codes API.
Create a QR code of type url, text, wifi, vcard, email, phone, sms, or location from destination_data
Re-point a dynamic code's destination after printing, pause it, or set expires_at with a single PATCH
Render a code as a plain PNG or a print-ready SVG with frame_style, frame_caption, fg_color, and bg_color
Read scan analytics between from and to dates, grouped by day, device, country, city, browser, os, or referrer
GET STARTED
Bulk-create dynamic URL codes from a list of rows with destination and label
Subscribe to signed webhooks for scan, code.created, code.updated, and code.deleted events
Convert a static code to a dynamic one and serve it on a connected link domain
Patterns agents use QRFLOW.codes API for, with concrete tasks.
★ Agent-managed QR codes through Jentic
A marketing agent creates and maintains a shop's QR codes: it creates a dynamic url code, later re-points it when a page moves, and reports scans. Through Jentic the qrf_live_ key is injected by the developer's own Jentic One instance, and a rule can pin the agent to the one code id it manages.
POST /codes with type 'url', destination_data {'url': 'https://example.com/menu'}, and label 'Table menu', then GET /codes/{id}/image.svg for printing
Re-pointing printed codes
When a campaign ends or a page moves, PATCH /codes/{id} changes only the fields sent, such as destination_data, paused, or expires_at, so printed dynamic codes keep working without reprinting.
PATCH /codes/{id} with destination_data {'url': 'https://example.com/winter-menu'}
Scan analytics by audience
GET /codes/{id}/scans returns scan analytics for up to 92 days per request, grouped by day, device, country, city, browser, os, or referrer, so an agent can tell which locations or devices drive scans.
GET /codes/{id}/scans with from '2026-11-01', to '2026-11-30', and group 'country', then list the top five countries
Bulk product QR codes
Catalogues and packaging runs need a code per item. POST /codes/bulk creates up to 2,000 dynamic URL codes in one request from rows of destination and optional label, with shared fg_color and bg_color.
POST /codes/bulk with rows of destination product URLs and SKU labels, and fg_color '#0F172A'
18 endpoints — the qrflow.
METHOD
PATH
DESCRIPTION
/codes
Create a code
/codes/{id}
Change a code
/codes/{id}/image.svg
Print-ready SVG
/codes/{id}/scans
Scan analytics
/codes/bulk
Bulk-create dynamic URL codes
/webhooks
Create a webhook
/catalog
Code kinds and required fields
/codes
Create a code
/codes/{id}
Change a code
/codes/{id}/image.svg
Print-ready SVG
/codes/{id}/scans
Scan analytics
/codes/bulk
Bulk-create dynamic URL codes
/webhooks
Create a webhook
/catalog
Code kinds and required fields
What agents get from Jentic-routed access to this vendor.
Setup
Wiring QRFLOW.codes by hand means choosing between a qrf_live_ bearer key and an OAuth authorization-code flow with scopes, looking up the fields each code kind needs, and handling PNG and SVG responses yourself. Through Jentic you install once, import QRFLOW.codes from the API Directory, store the key once, and your agent calls it.
Permission scoping
QRFLOW.codes puts the code id in the URL path (/codes/{id}), so a rule can pin your agent to one QR code: it can read and re-point that code and nothing else. You choose the operations it may call, so destructive ones like code deletion or webhook removal are not included unless you add them.
Credential isolation
Your QRFLOW.codes key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a QR code' or 'get QR scans by country', and Jentic returns the matching QRFLOW.codes operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using QRFLOW.codes API through Jentic.
What authentication does the QRFLOW.codes API use?
The QRFLOW.codes API declares an HTTP bearer scheme (bearerAuth) that accepts a Business API key prefixed qrf_live_ or an OAuth access token, and an oauth2 authorization-code scheme with scopes such as codes:read, codes:write, and analytics:read. The code-kind and frame lookups need no credential. Through Jentic the key or token is stored encrypted by your own Jentic One instance and injected at execution time.
Can I change where a printed QRFLOW code points?
Yes, for dynamic codes. PATCH /codes/{id} accepts destination_data along with fields such as paused and expires_at, sending only what changes. A static code can be converted with POST /codes/{id}/dynamic, after which the image should be re-rendered.
What are the rate limits for the QRFLOW.codes API?
The OpenAPI spec does not state a request rate limit. GET /me returns your plan with its feature flags and limits, and the spec caps a scans request at 92 days and a bulk create at 2,000 rows. Check https://qrflow.codes for current plan limits.
How do I create a QR code with QRFLOW.codes through Jentic?
Install Jentic One, import the QRFLOW.codes API from the Jentic API Directory, and store your qrf_live_ key. Your agent searches for 'create a QR code', Jentic returns POST /codes with its schema, and the agent calls it with type and destination_data. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Is there a QRFLOW.codes MCP server?
Yes - QRFLOW.codes states in its API description that it offers an MCP server. You can also connect the QRFLOW.codes API directly through Jentic: your agent gets the full 18-endpoint surface without loading another server's tool definitions into its context, your credential is injected at call time by your self-hosted instance instead of living in an MCP config, and your rules decide which operations the agent may call.
Can I limit what my agent is allowed to do with the QRFLOW.codes API?
Yes. For a reporting agent, write a rule that allows only GET /codes/{id} and GET /codes/{id}/scans for one code id, so it can read that code and its scans while re-pointing, deleting, or bulk-creating codes stays out of reach. Every call it makes is logged.
For Agents
Create, restyle, re-point, pause, and render QRFLOW.codes QR codes, pull scan analytics by device, country, or referrer, bulk-create URL codes, and subscribe to scan webhooks.
Use for: Create a QR code that points to our new menu page, Change the destination of the QR code on the flyer, Pause the expired promo QR code, Show scans for the poster code by country this month
Not supported: Does not print materials, shorten links outside QR codes, or run ad campaigns. Use for creating, rendering, re-pointing, and tracking QRFLOW.codes QR codes only.
The QRFLOW.codes API does from code what the QRFLOW.codes dashboard does: it creates QR codes for URLs, text, WiFi, vcard contacts, email, phone, SMS, and locations, renders them as a plain PNG or a print-ready SVG with frame and colours, and returns scan analytics grouped by day, device, country, city, browser, OS, or referrer. Dynamic codes can be re-pointed, paused, or given an expiry after printing, and their printed link uses the account's own connected domain. It also creates dynamic URL codes in bulk and sends signed webhooks on scans and code changes.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>