For printers

Publish your own prices for Layout Foundry

Layout Foundry compares DTF transfer prices for people who buy gang sheets. If you run a DTF printer, you can publish your prices in one small JSON file on your own website. Layout Foundry reads it once a week and updates your listing from it. It is free, and there is nothing to sign up for.

What the feed changes

Every listing shows its prices with the date they were checked and a link to their source. When your feed is valid, the date becomes the day of the weekly check, the source link points to your feed, and the listing says the prices were published by the printer.

The feed can update your film width, pricing rule, delivery charge, VAT basis, turnaround, file types and recommended spacing. Your printer name and website stay as they are listed.

How printers are ranked

Printers are ranked by the total price for the buyer's own layout, including delivery and VAT where they apply, from the lowest. Printers with the same total are sorted by name. A feed keeps your prices current. It does not change your place in the ranking, and no place can be bought.

A price that has not been checked for 45 days is hidden, and the listing asks the buyer to check with the printer. After 90 days the printer is left out of the ranking. A weekly feed keeps your check date current.

Layout Foundry takes no payments, commission or sponsorship from printers.

Where to put the file

Host the file at https://your-website/.well-known/layoutfoundry.json, on the same host as the website in your listing. Serve it over HTTPS, ideally with the content type application/json.

  • The file must be 64 KB or smaller.
  • It must answer within 10 seconds.
  • A redirect is followed only to another address on the same host. A redirect to a different host counts as no feed.
  • Your robots.txt must allow the address. The weekly check uses the user agent LayoutFoundryPriceWatch/1.0.

The fields

All money is in whole pence or cents, and all lengths are in whole millimetres. So £9.50 is written as 950, and 1 metre as 1000.

  • format (required): Always "layoutfoundry-price-feed".
  • version (required): Always 1.
  • currency (required): "GBP" for a UK printer, "USD" for a US printer. It must match your listing.
  • pricesIncludeVat (required): true or false. US printers use false, because US prices are shown before sales tax.
  • filmWidthMm (required): Printable film width in whole millimetres. UK listings accept 400 mm to 700 mm.
  • pricing (required): Your pricing rule. The three rules are described below.
  • delivery (required): flatPence is the delivery charge. freeOverPence is the order total that gets free delivery, or null if there is none.
  • turnaround (optional): Short text of 200 characters or fewer, such as "Next working day".
  • fileTypes (optional): Up to 20 accepted file types, such as "PNG" and "PDF".
  • recommendedSpacingMm (optional): The gap you advise between designs, in whole millimetres, or null.

No other field is accepted. A feed with any other field is rejected.

The pricing rules

  • per_length: one price for each length unit. Give unitMm (the unit, such as 1000 for a metre), unitPricePence and minUnits (the smallest order, in units).
  • tiered_per_length: the unit price falls as the order grows. Give unitMm, minUnits and tiers, a list of fromUnits and unitPricePence. The first tier must start at or below minUnits, and each tier must start above the one before it.
  • fixed_sheets: set sheet sizes at set prices. Give sheets, a list of id, lengthMm and pricePence. Each id must be different.

An example feed

This feed charges £11.00 a metre, or £9.00 a metre from 10 metres, on 570 mm film. The prices include VAT. Delivery is £4.95, and free on orders over £75.00.

{
  "format": "layoutfoundry-price-feed",
  "version": 1,
  "currency": "GBP",
  "pricesIncludeVat": true,
  "filmWidthMm": 570,
  "pricing": {
    "type": "tiered_per_length",
    "unitMm": 1000,
    "minUnits": 1,
    "tiers": [
      {
        "fromUnits": 1,
        "unitPricePence": 1100
      },
      {
        "fromUnits": 10,
        "unitPricePence": 900
      }
    ]
  },
  "delivery": {
    "flatPence": 495,
    "freeOverPence": 7500
  },
  "turnaround": "Next working day",
  "fileTypes": [
    "PNG",
    "PDF"
  ],
  "recommendedSpacingMm": 5
}

When a feed is rejected

The weekly check reads the file as data and runs nothing in it. A feed is rejected if it is not valid JSON, is larger than 64 KB, leaves out a required field, adds a field not listed here, uses a decimal where a whole number is needed, or gives a currency that does not match your listing.

A rejected feed is not used at all. Your listing keeps its previous prices and check date, and the problem is noted for review. Fix the file and the next weekly check reads it again.

Printers without a feed

A feed is optional. Each week, Layout Foundry also checks the prices recorded for every listing against the printer's own public price page. A listing whose page has changed is reviewed by hand, and corrections are applied within 7 days.

An email address for corrections will be added to this page. Until then, publishing a feed is the quickest way to correct a listing.