{{ define "title" }}API Documentation{{ end }}

{{ define "head" }}
{{ end }}

{{ define "body" }}
    <p>For simple textual QR, Aztec or DataMatrix codes, a GET request can be made as follows:</p>
    <code>/generate?type=[qr|aztec|datamatrix]&text=[YOUR_TEXT]</code>
    <p>Dimensions will default to 300x300, and ECC level to 2.</p>
    <p>This is also the format for URL barcodes</p>

    <p>For other barcode types and custom options, API Requests can be made by making a POST request to /generate</p>

    <p>The request body should be JSON similar to the below</p>

    <pre>
        <code>
            {
                "barcode_type": "code128",
                "width": 600,
                "height": 100,
                "ecc_level": 4,
                "content": "45684562"
            }
        </code>
    </pre>

    <p><code>barcode_type</code> should be one of:</p>
    <ul>
        {{range .BarcodeOptions}}
        <li>{{.}}</li>
        {{end}}
    </ul>

    <p><code>width</code> and <code>height</code> are in pixels - PDF417 is a fixed size and these options will only change the canvas size.</p>

    <p><code>ecc_level</code> should be 1, 2, 3 or 4 where 1 is least resilient and 4 is most resilient</p>

    <p><code>content</code> should be the value you wish the barcode to display. This should be a string and may not accept all characters - that is dependent on the barcode type.</p>

    <p>The response will be a PNG image</p>


    <h2>Formatted Barcodes</h2>

    <p>Formatted barcodes are under development, this API endpoint <code>/generate/format</code> will produce a QR, Aztec or Datamatrix barcode with one of the following formats:</p>
    <ul>
        <li>WiFi Network</li>
        <li>Contact (vCard)</li>
        <li>Contact (MeCard)</li>
        <li>Event (VCS)</li>
        <li>Event (ICS)</li>
        <li>Phone Number</li>
    </ul>
    <p>Note that URLs have no special formatting and can be produced as plain text barcodes using the <code>/generate</code> endpoint</p>
    <p>This endpoint is not yet available</p>
{{ end }}