mirrored listing x402 eip155:8453

Apply structural edits (move/rotate footprints, resize a net's track width, add a mounting

Apply structural edits (move/rotate footprints, resize a net's track width, add a mounting hole, edit a field, swap a footprint) to a KiCad 8/9 project, run electrical and design-rule checks under a named fabrication profile, and return a scoped pass/fail report plus downloadable Gerber X2/Excellon, BOM, position file, PDF, and preview artifacts. Claims are scoped: ERC/DRC clean under the listed profile rules, never "DFM approved"; footprint swaps are checked structurally, never electrically.

Do you run pcb.api.williamrobinson.dev? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
250000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-11
updated

Provider

pcb.api.williamrobinson.dev · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x26026370fe8b2bb17af9092a17691c76519366da",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "250000",
    "maxTimeoutSeconds": 300
  }
]

Output schema

{
  "bazaar": {
    "info": {
      "input": {
        "body": {
          "edits": [
            {
              "kind": "set_track_width",
              "net": "Net-R1_Pad2-LED1_Pad1",
              "widthMm": 0.35
            },
            {
              "drillMm": 3.2,
              "kind": "add_mounting_hole",
              "x": 2,
              "y": 2
            },
            {
              "field": "Value",
              "kind": "set_field",
              "reference": "R1",
              "value": "1K"
            }
          ],
          "options": {
            "requireDrcClean": true,
            "requireErcClean": true,
            "schematicParity": false
          },
          "profile": "2-layer-standard",
          "project": "UEsDBBQAAAAIAACQn0/H8GZEtwAAAAQCAAAMAAAAZnAtbGliLXRhYmxllY5BC4IwFMfvfoohHebFIIroGK5QzBTzPqa+YqCbbDOI6Ls3oYMEEbu9/3v83u+PrwPteE0NqzvwEMJ3UJpLgbbBlOwJYcF6QH4JmmsjFb1kxA+weQx2mfKItTaNiiN/8UyTaE929JjnVVEm54qSpHwt52Q4KDDmYRE5GOvRyLdzC7pR0/QtPR2Iu+8DOaoiKQQ0U82CixhYC4quws26793sv/84FsrkKAwXt1h24FZhTv6VBt4bUEsDBBQAAAAIAACQn09Cf2yYuQ8AAN07AAAVAAAAcGNiX2V4YW1wbGUua2ljYWRfcGNi1Vtbc9s4ln7u/AqWax+SqUDBnUC/dS5d07OT2VS6d6r2SYWrrY0saUUqTmZr/vt+ICmJkm3Z3W2ld5yKTB+CwIeDc/uOpOefZsHF6Sr4Z989/5zWzWy5qDjlknFuX0B2mRZp7drlurrAoEW6uTiQTrfPXNgJHd2aP/vuu+ft1Sx8WqSmqdhEvyiSebp04eu0TW4d18tVUy2WkJfHVm6VsMYPsptk7r5i3vIErS5+nLzZXFTN7HLh5t0svLp4fSyzZdwP8So1F9WmKVMNf84+p4tuBGPlsYMhr4+HiPLYB9e0qR/SS1UZeSxVZejPs/mnn/cLlj+bsE5p0c9XlwcPxry+NYaVB9+75tNoblEGHskYJnt7c9lM/hOS7XTlevJ27W5mi8tmmA+aeHPd3jHuzfL6Oi3aYRzHwu/Ckt0eV6TDGNGN4XeO4cMYKOJdvEw4kLYZ4eXA+96tL2eL8ca63b5Zt/8V91p7s9ys26+wiGFC2x3veMzr4zGi0/6Pzo/n7rR2JLMDXjYSSjYI+VgoBqEYC9UglDthsc4mtZtVub+C67TL6TVOahrmMGq3CKmi3bNuPl/eTJvlPKZ1N8CvZ1BTM50tpnm5bFfrGc6idwC4Cg4GZ1jl9XLRVt6FT50YLreaYyxmvi7usPWMNE+hLW5Hv9DhZ7q7UMPPVNVKZZXzi+7JMtF0uZgC2LSfZXp6nlsX/Txx1jiPzcJf22sX1svtJr57Dh1dprVP6/QFGypx4Y57rm3XM79pU1N9Tc3xzfi56DDeNQhO49ph3H8vfZ7N0/5mdM1VitP5bJGm5XqKdWbLivHJAfbRqEu3GgaJgzHN58vVOoVZF9bkXncZZ4Cd5d2OrpcxVWy3Abf5slzPYO+7AVery/kqLRabayDejhyEzSqliEh7IIwzLNGWseoA0irmaWcZ07yarhA4ofqv09VytVmN9FNGFct5cBDWcNCwO5Q2sL85lLcMmxImdruIX/JqOf96uVx0G95r/EueXWORmZtvFrO2ObgDffTpIhd73q/TLJABWgTc3fSrxsnlpl1t9it2lurnZStuEac3V7N2tG7zKbXhCq7XLBfZ+YOnIO21vbe7q1lMcbE6HNvPsROPTGzZNEBz+06z8e3ahba4Mo7iukEY303X489LOHq7Pefr2XqNrLnT4no2nzdX8JrtgCa4edp7IBtPFWewQKTXr9VFF/CGwLNIbUV7UXeNQPa31JK/sOkHFxn52P/e3eb97V7MyV/fvT0aIPoB2xt8mKmL7M93Qaq6+Igc2ZRs//P7t99/nFJNxZRpat4neGm4eLaNS0Ou7kLXZjOL1YU2UbA6CmKjFkRqLYlhNSc0cxF44Dkr148vmqNVPVHdXzEhR+4XrrBwVZatnpd1q37hFy+r5n82bp2q50VdbnG5mbv1iwqOVMGLrmcoDl5WP314Q2qhGI5ikDx/vYxfUTz8I1U47HVI33eDfn5PasOrlbtMVc1fVldtu2q+f/Xq5uZmAmMmIk7C8vrVzXIdESCa5tXNigSYN5zl1QbWB4t8NVsF0lyXedwUvryIxZWmrLNjPoGbAfNQPMH9b2btVdVVYGSnbbKrrXq9tO6yqS7WgyJ62da7i4IyYhIi5gWu2UVnQq4YCWETpLQhfuwOp69FhpDVHVD2lqosKNE0ZyKjk8TxWpOgWV0LJhxXfHgg5Qwtd2moWMei7a5gyEWRbDDgg7KPTpjqpd3rYMlj/H9H8CjYhaAj8HdiL5l9jFwqkUSqLbGB5WJahvhaO+JMZDLWNc0+nxH5WwRQJJPUAv0IOj2Bu4SiUc7rdhGMVJzLRIT3NZHZZWKUronS0gsVdU5UPGoXExRc5eU37aV422xV4tDv2w0NzlsOT6dKlzNRmjglMwkxeill9EzJM+2mVAxVcx27P5ABS47v42zr1m1F6ISLmitTrqBxNaBAqLj7TtOul59SD+9mFuGoWJn3Kz9vv65K7JjP4g7ESS8TtYzWU02Y5IxICw1ZkyhxsQ7C85AUFxe7rZxCfy/4s2F3ikeQwURYzIbI2kYEc85JNtobU6tQC3cSO7y5020t9rCPZXchpupRiHumMEastc2S6kAYD0BsrYG2WSARSBGZE/RtHkZ8CPjWLp4UMWXWe+c14T5wIiWyjbEqEOUSY8Fpj3+nEN+r4jPhldxGTw00zAz8nMPFrWSJJCaYcrROmacH8d6l4DPhtSxoSYMlLkhKpMeVkcgVWcna1DXTzoQH/K/Tr2SHvnckvNPvHgX5OLkFlmohfCZRITfLjJLJuIy0kOrgU0Kiy/ZBwMd4b+/i6QALF+F0OpI6M1gwzBaAoySeMcCNtQu5PgX4XgWfBy7cDTWCSiQgqhEZENl8FrLECZ9pDCLykyHiXvWeCS6tvfXwtzpRRDSpKDGBOqTZZCSLGgHj0N9aMPChefJv//vx3Y/vPr7725t3/3xkat8tmqPPmhhfnMbKQJxFfWh0kq7WkbKaPiaZQyXl/12pnOo7CxOH1dlFyebVerlZxFLdb5EXLXO1BT8sUPRu1Wg/zbZtuGuu7Rp7/ajdvNN13wRAIh0mOM2sdupJCYdRK0GUkhomZCjxXggSAkhPlNxpPYrZ3Z74PXv6Jls6xQZ3m8omM1cLTiyHc0hBFcpRjsCeUb9FRKRo6X5TCVQ7gl5Py5HvelmlTTAvdvfvP7354a2dirfv/+Ptu79O3/708Z+vxlRyImLHiJtXtzjlBNta9da6zLlJvUE9//L1HyPTHfRVePT+NtsV9FuttOBa9z3+oifWI64LvXQ0t/z+FUTXoHyP+AdDQPWO/IiawzpNEBNlzDJ7x+o90dXHRBernZ3jFj470FkcQOtmpE3hquO0PX19FZc3i+6CU8YY5ZQLLoTQoIjid5BXbO4Uby2WOGauYqIeQVwVk5QbFQlzRkLrXoH+MUui5pb6qCPX4RsQ17K3PfZHEVelgqhBTgm3NXys8CPjuQUDpNki9Zgsz0m5n4i4Ui2FNlQS2Ioj0jiKmIGaO3uVVUjQf6z/dYirqHVwQtbEi1LQUsuIVdSj3sqSwf65EuoPIq6lLlZ9cT8uNnrxSPqkpI85n1xCOEMgc4X0oZzTtYGN4nRRAFDBT5Zzt+Ht67nzIE5wHuUcwq7kAgE4gZK47IhlVFiZaKrZgxXdPUom58IMRxHKGU9YSRUy48oYrQgDI6lRTkfKT9K+b0+teTZgpzmT2na5DpWPjUh42omAYtQ7XZ8kfn8AtXZWSMMUSZ4yUD8eiK2dJVnQ6DjTJVr9f6LWykCVhUMlJeB52ibiu3ZLbUKMMGKfHsb7Lam1SEl51ImJyoKXIg8IYUgOyaOaTCbK05FicDw2wjsQqRMe9yiwx4k3UxdpRO2bFexB5tKdzM4TzyNDfECJ+4C7HeAaEdSnBipCnYSWilCLk5dGBGAE+6cZecrUNYpN+gDQLmrJI53u1fx0WGGgNGjnCM8WdRiziLte1XgRDBE5116dbG1uif8B1DH6J1SrQX4AaUW5VQMqF4q4GuTGiKiVziklyR5B+g+P/xxAeRRe6iwRA5RFNeKRxmKBjIrX4Py9Foc+9RR0n4tkc1aSKMGxlGWCmBreAW/m1JhgHHtUQf3kdL829S1yXCR/AD1WKQkvoiWOlXfLdIjEGhQZShmkQSZRwo964Q9w/m+zr1Pv8e7PXsokcgikNqnQfieINxpnH3zwwmFn/vfR/oFV7xn/HfT6j+P8b5aLRfd++/TDbPHn5GJaT/lEyevr7/cC9oXy6YdePP07+Aeo7/xUS8DW1rsIiscFLU1nhEdjkSOz9IqBZgTLw64lII87Ar9c4WAvr6qr5RyRo1272eVVW61mi+qqw/OyKoBeVj0g3GjD1cuq/xAHrO1mTMAP5tpPUf3y51+6WbaTHD99N1//ywFb5xNhHkHXg5HBcGVIcAjA0gQUjlZowhXXKSZjjbLfgK6Xk57SsufRHuTE8gfDY4jO5YDw6BQvDR4DrpjBjaKJnHnkj5DPuYGnYu2lse2SI7X2YEk0CWJpwjEIpkyOzFpr/oVYu9KuVtyQZMub5xqUxIUciXTU0hio8LU/02461t72fjUtfnVfKcaKf3Svo7phLHhSRhktyypGRrh3SFBMRoIaPBAeuA2aMRHZQ/xs784DdzjE/7Tvi7vAhHWcIFCiIk81ooKkAeRMWqMtCz4+RICBbndyI8QCPn0GwDzaEFxEjYs6HPp1DGEs5fI2EiKc1ZLSh94MvwX4SPTEXZEoNCo3IuDZRCpbijqL0JUiShWdmNEnS95jZe7wnkm/wnsGC1YkW1EoWu1LqZUIw6WtqXJKq9Ps9271nguugAYlymXQyECkdOA9LgAuz0k4qmr2oDnUdf96YMAQyok4gfg303VjaR1rKghP0cDjYBDwQUOiVUKz0mF4gK4fges1fD68wXPjE2VEeYPKNCG6e1r6tDCEwoa8Os3Z71fwSPi0iHVmMSJERCfAoxJefGIUpTXTMsfEESceRHyHgs+FF/w8cYQJkg1HZYZijJRGKkGEUJLpUvecbjZ02RM8TR+0Tru/+5snHO9RmG+1HLIyyvnSjRaw4ezLWw+wZs9qESw1zj7YnAZiMTHswCaOdvGEfQdtrRMgVjVDrSIjVchyEZENMY26DJvQ/oF2zpEue6Pg9Xn0y6kNQtYMQTggyRXbMBRFb+IRv7Ri1sfTFnyIbId2r/KnA2sMSruMDAdzZTBfhArvNfgrKI6TUG0MJ/tP99rCOcAmlahBUUOS5mHbY1G8fFJSlU6pEuIwvT3c2Omw2ofYC3OJM+WRUmuoCmphxEWjiWDcUuGklexRn+X4dexlaOygTN50NXJ10AA56H0guJX/vaT7sPz2E/HbLsif+i7In/ouSH9vna6Xn9N0s4CK4vCtlt1H7h/5OQ6qkbFt4kQYBUoUC8XjrCbcaPyg5vCc3+7p7PcUZuvQNyP6XRUuff6NPaqtk6UvTalEFAulXSXB9jLThEZOTfYMBjhiA7+hrXN/42Tf6Xmgg/KNuz6X6+lghNum7vB9reL4HO7UN2H2Ln/k8b3Dx5TdZt7uPbUc66CwwQf334nrpAM9k0xQzjVxonw+WnBPDNc1CdQKV1OjkLsuXmy/ZXZZvjywR7pvERWsdsJqtZNsQYoxhH1DqnOFEQ4fU5I6lJTZxSHLiY0yEMVzZsoqiqrlXhys/7jSGAxTE874r4LDR3CYprlOmRJueQlRVBIjEayo8VxQJB1pdnA+z9yz74ZP0fQt1O2iQw+1/6Zp72kHCPad1NcHSMQYSfZZKCaRoHN5NytQYjSoKU3U1V5mLhy/XzFHgIpmZFEXlfdr5X4syqI0KB9PtALlo5SGwmxQBAfjSqdeFzq/xXKH77549n9QSwMEFAAAAAgAAJCfT2e+ESNiBwAAriAAABUAAABwY2JfZXhhbXBsZS5raWNhZF9wcm/tWdtuGzcQffdXGPvUAoYhyXbi9rl/UQQExaVWhLjkluRKUYL8e2e4N95WMgr0JYhhJzbnaMgZDs/MkN8fHh+rvaamrv58/A5/wJ8v9VnwS6eNszD495enYbjmVjSKWO6cUI2d8V50oL104RiM0q6TVzLJiNPk0JGD4LJG4IFKy5/uoO2RdvzDaMe/ugLWm0d076RQnPh/LqJ2R4BunjdvAZLpruMmhexyBM5EhKNSsMKEIciKb5ygnu1zYaYFcr4JcUfBTopb6xf0soLqOyOaY8kFTPfGXdENt8yvRcuVFVqRznAm8DcAvRYRvRJ+v19K0jgQcLuM0RciuWr8vNvd5w18PYUQMGBUrQ8HCDKAvW0y1InzYZ8J+L5RHMPWmZ5HINt3YIC15Bs32odPBvEqOm2FG4yMZ/HGkYM2LcV1bGbZj8DaA92n3twm4tthMiOCGNmsys/r8jg6tm8lzHpsaHfMY36bAW7bEmBWrEkRuT0B4oZFAWrdpo7WWQzWRkjp9b1Hm33ko5Lt8+5zJJncsXt+ey2GgBXydMtzXn7bcQtkxW8JIHfbAki8VsSs++ybVjxzWisUYZJTQxXjXu3b4omHxCNAAIcD6agwJKKCKYX4TWCEf2WyL8ha7micQc7cjCS0y+YyveSQjAACZ5inqUepXlIzb0vFgYBMFTJiYFRBqpXiDLlhUXGhRkHii2GefHndcHJPoUdaKWDBq9pGkrZEA0rSrqzKAAfSpjzPsgMN7TDnAZsSWNZdeK9g+k7yemRpSKmaSA0rLH4Oz9IH1INGwajjwKXaQeQpnzNKxkNsGrrAVlCRPJtulkKVIR3EDmmFBQpnfv8gXWjDy3h7bfdaRvBbsxN37fgd5Uct7wWFh0Dpgv+vTIkiSxhuBfqxXoEJdQZ+mYuc4mzCaokqyBCLa5ocbwmEfS0s3ftwoNcBnCsEqCVKYy6W+jIsLkON4XQ3VqTYL9tPhLU9X4uVGHpn01oqMZF7u8fzVZy/Fczos6Dkg7HdChwBtZ5WwWMHo2E1s7tKSwGrYCheSB45E+zeYVDcgSp1gCO2CtEqW+eestPNZaoO9ksAe9f83lIxzzrQt6Lp44rsEdoNNNoHVdHhPoflVFuY1iORQm+H+gwbmbYEOfHL/VCAg1XDZC21J7I3ol6DOWrOuBFQwEBUFjF+k+aKpLSkaRsHT/Su7KysHiiqOhrdN0fPP5AFash17ojWToSUq4Wk0FJ1JXBQViY2GF7gqjUNXl4jQAzJpbQwD7K8gSLCLW3Dmrb1LO/lwJ9G+yNVxGDm89ketmY9+noFHYWWuH9nagRyYxHnGeS2db7QgnOBGYqzIJUVa5yksmnpVzKgffsW9W95sbZJpXNdsyIu1zOb53Saxmg4OWEjmQCy9Ad9dKokyX8FxELKgkJ5yE3WkMeoucTfJpB582ynT96nqRLPBre9Fx/OqI9Y5HERvskw4ZmLrHpJkVFsJ10QAtDitNDNLc+89xrqCakLdmIMgHU39JaPHsD2eKoVGZVsarOzIHagqzYaqtHOTUX/rDBqNhwUMJh8gIqKPTuKwXuqHq6FtJLXvI+ZgLatb+nx3uWqXlcAjotNWjqeL7lxHTjM+/i2fb5SIuhFd9HDFpfvJ6Bc6SFbIAlC6vQ1wCZFjBthKPg1bQsHxLg/EyI6xwMC+GSO6F2uAMSgo6wc74kgaUCMIaOtORKSXgOFigLvINPBiN/C4WqvStE+jjESfbM7lPHB8v8oteG/fFzwMbD8Lxf/ry4e+Bkp5L97OOeThfST2xHXYx0BS3WgrXgNH1/AlK7k/SWDUX41tegtAbJnUGINtwnvsWtGpHVXn523kRDLENpCd+/6mhf8ipknlEdJ29feWCESbA3KFGw7yoYSClSXQjKw1VfpP4/Bm+dPRYNHFWMF/XOam1UPQ/lSvkwcCumBi/D5wCgq8bhJ7uY3o4dAXSU6tnt731bh05WwvgKfD7Ef6VQ85ot11C7qWNAemmRg/Gg0r++2faxGL2rjMNSmPH5qi9/fHkZFw0PWAqzYuWP72ZiK/9OLMwWeY550ePJpKfYGOpegoag6Ae1AHdylACZayAgYr8dm6awzurKtcNKJIGFlsCcYIvz5JBgQbGd0Ndk33+u+zKrwNiMjtYpJai0Pa6qA7fYQ4VPhu41e6eK+o0gajW/6k55jEWPc3YGUXwj9c8B0qOIOotTLvBQRxT5mcu1fw9GPLlrA20xL3xVWptnT3zZPj+M3NImb3yOwEdoIh7Xzbvv6+fX95dNr8PBRWXbkLWQr9nGVaa8SOiQz+VMqnK0NnXERZukvJ4YY+GGKzuTBIAir1+j4DRdlYArGEfRLchn38UXgRzQKLxvWEGPaTcIf3K74ZYlWgDqEHqPX8QZOJE14Q9SHeABmkhkVdVKnI9rOZzsYth1nDC/Qa5swl3W8S0bOCWWdTStzzsInBrwmxPugmltm/LwTbrB/jpTABbyh7IpUAZtugolCyWhp4El75CEHDvdX00WL9+aPhx8P/wJQSwMEFAAAAAgAAJCfTzFxU5nRBQAAgSgAABUAAABwY2JfZXhhbXBsZS5raWNhZF9zY2jtWW1v2zYQ/uz+CkIfBjuoFZLya4Ci6Jp2xdoCRVr0qyBLtMNFIgVJTuJ92G/fkdSr47hZbMndsAAxJIrkPXe6e+7E699w3wvc1L9+0evfsiTlUiCK6RgTMhrA2IoJlniZTJDFGExjkWc1xt1ilTW3sX60XvMAWRSbv+GOn/yP6OmxFzPY/c1I32U8C5m7CKV/86KX3yLry9tf0WcZ8CWgzZSwX9B7b5EUd+/EigsGuwxRxAWPvBCxey+KQ6b27PV9GcWe2CBL3SopIV+46SZayDCFO3OFrEt2y312cWWpNTEXrlhHC9AObnv9ax4wtGGp2nBQTvAiZh7L5TJlGcLlY3bvh+uAuctERm7KIySkHodVCxkVO/WluvWSoByIEwn2yADsFVuyhAmfWXBtaSlehqiNHYowmmtRIGe5ZH6mQfT6SykyfQVK8T8ZIjad6h89VwPrVQqUkr574bopBR9ZwnspszjhIgMppZAhsafT2SGSmq9ll+BLL/PSa8aU4L8a6rUoEwIl4bFyTWVUlvIUAqUj4TfcvWGbO5kEqRKOEpaq/44hLGN3ycMMgkeBcM9alVzE75WLXWIkJbCzJ1YhM+vSzEu0v2EyQUNqj0f5hkwEyIzWBtMskTcsR3PHg+waYZsWj4GUNjFDAVt66zBrwAOVw/ocIQXbFRcVYFIABjZBsZem/JahEMjMbKgN5tgzgugU50JCJlaAqLJNX7FQ4d1bdm1Y9hHbFvB7DV0M9yGLHHPbwY90HWpl5yfSlR5bV5MJYPMgYIGrtklNHhg8TDuf3l0ekHi0Ew92LzhuKrqsxbIKmmeH855ElNuicIpji9mZjVrOCSfPQ5/46jpDLOJZxsUKBVwGrCMgX3lkf+FC5QLy6iOir96cJBmCV3Wq9nYeBPlnCH7cr58vL8zVtw/fLrpJjkpamR5jGW4q5o0LpuvfbxQD49EMDbE9ndAB0kMjezylKgzpbJIPaZ5ujOyYlA8Re0xHDai7Muwxsut+zUy52dDMsR28BVqTzZauDyblQz+PZuAQ2GDLr38SUPo3N9put22z2toLcBtfBQ/tNuqwU+wPovfHtaKJyoJDyvKpVtqa8unjv79UzDUlsx/p+ua/VCq+lUKANJm4v6nzF+5fqBEXk3tMq+LxdLXh7x3Uhk2NixJxbOPZ/yXigSVi7lTIL9zsJUq5+opGibx7ibTRYUivQPkJIAtQXx8iDkO+SLxkM1xnPEzPU/8aBs69dSZh5nm55fngJLVfKf9EtV8ZuWcXZy65f/26ozORKlqq/PHY4Uhj9/xoRKU9xbXHTngLz79ZJXItggecvwcetkkDH1bVXDW0Ex0pS7RDa4k9wKA4HBGniYzak0lHyB6vCAwvblcEtTdqsiR8nblHTd+nqQqMuvXzgv0qHzWLn6g4qOoDNUl1NlT7ZW+loLcDc00nNkWzmT03xuqvBYdq4aC6IBBxMdX0gZwn9oEeLSlIyZMa7pzYo67qCmMf8KZxW6VF9ZrAHT8wL2CJq7w3ii6qAc3eX8yw+x02gXQbboEsX2KHpUknkhsFSheigVtyzso9ePRUD67W03+4nlbruYC8Aq5vKngwxB+gF7Jif+EWPU0DP/aA1azzJ/VZc2MkRVzpsCpSTxX1TZ/dTSxlk7QgEf0WTk8idB+JXFUkQshUd1DnU3s0aaWL6ji4Jm3cgqQ6gxTtRX2oeOXiCXZcMsGzzywD1q8BcWxKD1b7uVSx5SSnaLu2COE5lOEcSBmjzinj6kDKUE2dgjQIJvbkJ2ANZx9rAOAabzgYzaG8bLvdpeXM7Tltq+QoGhC6IfAYW2y9ng6ZohvRT++MtYnnObwxPpA3Jp3zhg6jpzDHHU+Y1ssYV527Twl83mvrm3N4Q+IQhvNSi+rTutHaePBFXSOG8VMUeRyUBjGn9pQYUJBTpya1tAyK7gFF8NgekZqpjOn051LLsJwClo5mt+5WhevkjQtvxZTHl+988OJvUEsDBBQAAAAIAACQn09Z7wc9kQAAAAcBAAANAAAAc3ltLWxpYi10YWJsZZWNMQvCMBCF9/6KIziki47iqAlIqSLo5BTS9IbDNilJLBTxv3vFTRfd3se9d59MU286aky2TYcFgBwxJgoe1uVMfALpbY8gNI7kUJQyTwNjTcq2TPdIIBaPulJbvTGX63F3OhhdnZ+r92B5I2dbwx4uhyHz7wSCc4vJxTl9ilTwHl0O0ezRYyT3h/Nr+4u+LF5QSwECHgMUAAAACAAAkJ9Px/BmRLcAAAAEAgAADAAAAAAAAAABAAAApIEAAAAAZnAtbGliLXRhYmxlUEsBAh4DFAAAAAgAAJCfT0J/bJi5DwAA3TsAABUAAAAAAAAAAQAAAKSB4QAAAHBjYl9leGFtcGxlLmtpY2FkX3BjYlBLAQIeAxQAAAAIAACQn09nvhEjYgcAAK4gAAAVAAAAAAAAAAEAAACkgc0QAABwY2JfZXhhbXBsZS5raWNhZF9wcm9QSwECHgMUAAAACAAAkJ9PMXFTmdEFAACBKAAAFQAAAAAAAAABAAAApIFiGAAAcGNiX2V4YW1wbGUua2ljYWRfc2NoUEsBAh4DFAAAAAgAAJCfT1nvBz2RAAAABwEAAA0AAAAAAAAAAQAAAKSBZh4AAHN5bS1saWItdGFibGVQSwUGAAAAAAUABQA+AQAAIh8AAAAA"
        },
        "bodyType": "json",
        "method": "POST",
        "type": "http"
      },
      "output": {
        "example": {
          "artifacts": [
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/project.zip",
              "mediaType": "application/zip",
              "name": "project.zip",
              "sha256": "0cdbde3d00469410e7f4b3ad16697fd3b7a78f16cecdb9a1791bb4044e90659b",
              "sizeBytes": 9899
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/gerbers.zip",
              "mediaType": "application/zip",
              "name": "gerbers.zip",
              "sha256": "014eac7a333c934570537967bbc9aec133f712db8dcf3b2a96eccb3ef11b6415",
              "sizeBytes": 17438
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/bom.csv",
              "mediaType": "text/csv; charset=utf-8",
              "name": "bom.csv",
              "sha256": "ecb1d9f39c4d16a26325e2ff77539fe82193747b36252910bd8d6a0c70563858",
              "sizeBytes": 225
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/pos.csv",
              "mediaType": "text/csv; charset=utf-8",
              "name": "pos.csv",
              "sha256": "d18d420534f21940552b197a9c7f15bf8253fa44e1cdc4f2c46906a9ce2d459f",
              "sizeBytes": 250
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/schematic.pdf",
              "mediaType": "application/pdf",
              "name": "schematic.pdf",
              "sha256": "91ddee5edcae2f616b08c7bbc3eff1266d82d5a77f9643e34f2982e6147bc814",
              "sizeBytes": 20762
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/board.pdf",
              "mediaType": "application/pdf",
              "name": "board.pdf",
              "sha256": "2f99af206e0d3ab21865ad8f630bf8afd4dcb12d17fce92507823f4fd8256296",
              "sizeBytes": 16520
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/board-top.svg",
              "mediaType": "image/svg+xml",
              "name": "board-top.svg",
              "sha256": "030acd64a19a194237156164998604d5acc3226795940a0a86d5571becb174c9",
              "sizeBytes": 53070
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/board-top.png",
              "mediaType": "image/png",
              "name": "board-top.png",
              "sha256": "ad28c684d6527ac62cbd25c4228408e3b9763f471cbb2a06f2a46c58db93f82a",
              "sizeBytes": 48049
            },
            {
              "href": "https://pcb.api.williamrobinson.dev/v1/pcb/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/report.json",
              "mediaType": "application/json",
              "name": "report.json",
              "sha256": "14b5b416d34b826e09509df76c3f170479cc4f5dbcb8b348c65f9e0e004d346f",
              "sizeBytes": 4543
            }
          ],
          "board": {
            "copperLayers": 2,
            "footprints": 3,
            "libraries": [
              {
                "kind": "footprint",
                "name": "Resistor_SMD",
                "resolved": true,
                "source": "kicad"
              },
              {
                "kind": "footprint",
                "name": "LED_SMD",
                "resolved": true,
                "source": "kicad"
              },
              {
                "kind": "footprint",
                "name": "Connector_PinHeader_2.54mm",
                "resolved": true,
                "source": "kicad"
              },
              {
                "kind": "footprint",
                "name": "MountingHole",
                "resolved": true,
                "source": "kicad"
              },
              {
                "kind": "symbol",
                "name": "Device",
                "resolved": true,
                "source": "kicad"
              },
              {
                "kind": "symbol",
                "name": "Connector_Generic",
                "resolved": true,
                "source": "kicad"
              }
            ],
            "name": "pcb_example",
            "nets": 4,
            "pads": 6,
            "sizeMm": {
              "height": 15.1,
              "width": 20.1
            },
            "tracks": 3,
            "vias": 1,
            "zones": 0
          },
          "checks": [
            {
              "code": "structure_valid",
              "detail": "project contains exactly one .kicad_pro with matching .kicad_sch/.kicad_pcb",
              "status": "passed"
            },
            {
              "code": "libraries_resolved",
              "detail": "6/6 referenced libraries resolved",
              "status": "passed"
            },
            {
              "code": "within_limits",
              "detail": "3 footprints, 6 pads, 3 tracks, 2 copper layers",
              "status": "passed"
            },
            {
              "code": "edits_applied",
              "detail": "3/3 edits applied",
              "status": "passed"
            },
            {
              "code": "erc_clean",
              "detail": "0 error(s), 0 warning(s)",
              "status": "passed"
            },
            {
              "code": "drc_clean",
              "detail": "0 error(s), 0 warning(s) under profile 2-layer-standard",
              "status": "passed"
            },
            {
              "code": "parity_clean",
              "detail": "schematic parity was not requested",
              "status": "not_checked"
            },
            {
              "code": "outline_present",
              "detail": "board outline 20.1 x 15.1 mm",
              "status": "passed"
            },
            {
              "code": "exports_generated",
              "detail": "7/7 artifacts generated",
              "status": "passed"
            }
          ],
          "drc": {
            "errors": 0,
            "parity": 0,
            "unconnected": 0,
            "violations": [],
            "warnings": 0
          },
          "edits": [
            {
              "after": {
                "trackCount": 1,
                "widthMm": 0.35
              },
              "before": {
                "trackCount": 1,
                "widthsMm": "0.3"
              },
              "detail": "set 1 track segment(s) on net 'Net-R1_Pad2-LED1_Pad1' to 0.35 mm",
              "edit": {
                "kind": "set_track_width",
                "net": "Net-R1_Pad2-LED1_Pad1",
                "widthMm": 0.35
              },
              "status": "applied"
            },
            {
              "after": {
                "drillMm": 3.2,
                "reference": "H1",
                "requestedDrillMm": 3.2,
                "x": 2,
                "y": 2
              },
              "detail": "added mounting hole 'H1' (3.2 mm drill, closest to the requested 3.2 mm) at (2, 2) mm",
              "edit": {
                "drillMm": 3.2,
                "kind": "add_mounting_hole",
                "x": 2,
                "y": 2
              },
              "status": "applied"
            },
            {
              "after": {
                "schematicUpdated": true,
                "value": "1K"
              },
              "before": {
                "value": "330"
              },
              "detail": "set Value on R1 to '1K'",
              "edit": {
                "field": "Value",
                "kind": "set_field",
                "reference": "R1",
                "value": "1K"
              },
              "status": "applied"
            }
          ],
          "erc": {
            "errors": 0,
            "violations": [],
            "warnings": 0
          },
          "expiresAt": "2026-09-11T09:47:12.000Z",
          "exports": [
            {
              "detail": "Gerber X2 + Excellon drill, normalised for deterministic output",
              "name": "gerbers.zip",
              "status": "generated"
            },
            {
              "detail": "component position file",
              "name": "pos.csv",
              "status": "generated"
            },
            {
              "detail": "bill of materials",
              "name": "bom.csv",
              "status": "generated"
            },
            {
              "detail": "schematic document",
              "name": "schematic.pdf",
              "status": "generated"
            },
            {
              "detail": "board document",
              "name": "board.pdf",
              "status": "generated"
            },
            {
              "detail": "top-side board preview",
              "name": "board-top.svg",
              "status": "generated"
            },
            {
              "detail": "edited project, deterministic archive",
              "name": "project.zip",
              "status": "generated"
            }
          ],
          "limitations": [
            "swap_footprint pin-compatibility is structural only (pad numbers and pad count); it never verifies electrical pin function or footprint land-pattern fit.",
            "ERC/DRC claims are scoped to the checks actually run under the stated profile and options; this is never a DFM (design-for-manufacture) approval.",
            "PDF documents embed a generation timestamp and are not byte-reproducible across runs; every other artifact is.",
            "No 3D/STEP model or courtyard-with-3D check is performed (kicad-packages3d is not installed).",
            "Profile rule numbers reflect typical low-cost fabricator capabilities; confirm exact capabilities with the chosen fab before ordering.",
            "The fabrication profile's .kicad_dru rule file takes precedence over the project's own netclass clearances during this run's DRC; the returned project.zip restores the project's original board-setup minimums.",
            "The min_silk_to_pad rule is scoped to silkscreen-vs-pad clearance only; it does not check silk-vs-silk or silk-vs-mask spacing."
          ],
          "profile": {
            "name": "2-layer-standard",
            "rules": {
              "copperLayers": 2,
              "minAnnularRingMm": 0.13,
              "minClearanceMm": 0.15,
              "minCopperToEdgeMm": 0.3,
              "minHoleToHoleMm": 0.25,
              "minSilkToPadMm": 0.15,
              "minTrackWidthMm": 0.15,
              "minViaDiameterMm": 0.45,
              "minViaDrillMm": 0.3
            }
          },
          "status": "passed",
          "tools": {
            "kicad": "KiCad 9.0.2"
          },
          "truncated": false,
          "warnings": []
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "body": {
              "$defs": {
                "edit": {
                  "oneOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "move_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "rotation": {
                          "description": "Degrees.",
                          "maximum": 360,
                          "minimum": -360,
                          "type": "number"
                        },
                        "x": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        },
                        "y": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "x",
                        "y"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "rotate_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "rotation": {
                          "description": "Degrees.",
                          "maximum": 360,
                          "minimum": -360,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "rotation"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "set_track_width"
                        },
                        "net": {
                          "description": "KiCad net name; every track on this net is resized.",
                          "maxLength": 256,
                          "minLength": 1,
                          "type": "string"
                        },
                        "widthMm": {
                          "maximum": 20,
                          "minimum": 0.01,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "net",
                        "widthMm"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "drillMm": {
                          "description": "Desired drill diameter; the worker snaps this to the closest of its fixed mounting-hole footprint set and reports which one it chose.",
                          "maximum": 25,
                          "minimum": 0.01,
                          "type": "number"
                        },
                        "kind": {
                          "const": "add_mounting_hole"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "x": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        },
                        "y": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "x",
                        "y",
                        "drillMm"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "field": {
                          "maxLength": 64,
                          "minLength": 1,
                          "type": "string"
                        },
                        "kind": {
                          "const": "set_field"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "value": {
                          "maxLength": 1024,
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "field",
                        "value"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "footprint": {
                          "description": "\"LibraryNickname:FootprintName\" from the shipped KiCad 9 footprint libraries or the project's own.",
                          "pattern": "^[A-Za-z0-9_.-]{1,64}:[A-Za-z0-9_.+-]{1,80}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "swap_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "footprint"
                      ],
                      "type": "object"
                    }
                  ]
                }
              },
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "edits": {
                  "default": [],
                  "items": {
                    "$ref": "#/properties/input/properties/body/$defs/edit"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "options": {
                  "additionalProperties": false,
                  "properties": {
                    "requireDrcClean": {
                      "description": "Fail the report when DRC reports errors under the profile (warnings never fail).",
                      "type": "boolean"
                    },
                    "requireErcClean": {
                      "description": "Fail the report when ERC reports errors (warnings never fail).",
                      "type": "boolean"
                    },
                    "schematicParity": {
                      "description": "Include schematic/board parity in DRC.",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "requireErcClean",
                    "requireDrcClean",
                    "schematicParity"
                  ],
                  "type": "object"
                },
                "profile": {
                  "enum": [
                    "2-layer-standard",
                    "2-layer-fine",
                    "4-layer-standard"
                  ],
                  "type": "string"
                },
                "project": {
                  "description": "Base64 .zip containing exactly one .kicad_pro with its .kicad_sch and .kicad_pcb (KiCad 8/9 formats), decoded size at most 8388608 bytes.",
                  "maxLength": 11184812,
                  "minLength": 4,
                  "pattern": "^[A-Za-z0-9+/]*={0,2}$",
                  "type": "string"
                }
              },
              "required": [
                "project",
                "edits",
                "profile",
                "options"
              ],
              "type": "object"
            },
            "bodyType": {
              "enum": [
                "json",
                "form-data",
                "text"
              ],
              "type": "string"
            },
            "method": {
              "enum": [
                "POST"
              ],
              "type": "string"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method",
            "bodyType",
            "body"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "$defs": {
                "edit": {
                  "oneOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "move_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "rotation": {
                          "description": "Degrees.",
                          "maximum": 360,
                          "minimum": -360,
                          "type": "number"
                        },
                        "x": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        },
                        "y": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "x",
                        "y"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "rotate_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "rotation": {
                          "description": "Degrees.",
                          "maximum": 360,
                          "minimum": -360,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "rotation"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "kind": {
                          "const": "set_track_width"
                        },
                        "net": {
                          "description": "KiCad net name; every track on this net is resized.",
                          "maxLength": 256,
                          "minLength": 1,
                          "type": "string"
                        },
                        "widthMm": {
                          "maximum": 20,
                          "minimum": 0.01,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "net",
                        "widthMm"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "drillMm": {
                          "description": "Desired drill diameter; the worker snaps this to the closest of its fixed mounting-hole footprint set and reports which one it chose.",
                          "maximum": 25,
                          "minimum": 0.01,
                          "type": "number"
                        },
                        "kind": {
                          "const": "add_mounting_hole"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "x": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        },
                        "y": {
                          "description": "Millimetres in the board's coordinate system.",
                          "maximum": 1000,
                          "minimum": -1000,
                          "type": "number"
                        }
                      },
                      "required": [
                        "kind",
                        "x",
                        "y",
                        "drillMm"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "field": {
                          "maxLength": 64,
                          "minLength": 1,
                          "type": "string"
                        },
                        "kind": {
                          "const": "set_field"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        },
                        "value": {
                          "maxLength": 1024,
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "field",
                        "value"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "footprint": {
                          "description": "\"LibraryNickname:FootprintName\" from the shipped KiCad 9 footprint libraries or the project's own.",
                          "pattern": "^[A-Za-z0-9_.-]{1,64}:[A-Za-z0-9_.+-]{1,80}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "swap_footprint"
                        },
                        "reference": {
                          "description": "KiCad reference designator, e.g. \"R1\".",
                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,15}$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "reference",
                        "footprint"
                      ],
                      "type": "object"
                    }
                  ]
                }
              },
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "artifacts": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "href": {
                        "format": "uri",
                        "type": "string"
                      },
                      "mediaType": {
                        "maxLength": 128,
                        "minLength": 1,
                        "type": "string"
                      },
                      "name": {
                        "enum": [
                          "project.zip",
                          "gerbers.zip",
                          "bom.csv",
                          "pos.csv",
                          "schematic.pdf",
                          "board.pdf",
                          "board-top.svg",
                          "board-top.png",
                          "report.json"
                        ],
                        "type": "string"
                      },
                      "sha256": {
                        "pattern": "^[a-f0-9]{64}$",
                        "type": "string"
                      },
                      "sizeBytes": {
                        "minimum": 0,
                        "type": "integer"
                      }
                    },
                    "required": [
                      "name",
                      "mediaType",
                      "sizeBytes",
                      "sha256",
                      "href"
                    ],
                    "type": "object"
                  },
                  "maxItems": 9,
                  "type": "array"
                },
                "board": {
                  "additionalProperties": false,
                  "properties": {
                    "copperLayers": {
                      "maximum": 8,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "footprints": {
                      "maximum": 500,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "libraries": {
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "kind": {
                            "enum": [
                              "symbol",
                              "footprint"
                            ],
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "resolved": {
                            "type": "boolean"
                          },
                          "source": {
                            "enum": [
                              "kicad",
                              "project"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "kind",
                          "source",
                          "resolved"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "name": {
                      "type": "string"
                    },
                    "nets": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "pads": {
                      "maximum": 4000,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "sizeMm": {
                      "additionalProperties": false,
                      "properties": {
                        "height": {
                          "type": "number"
                        },
                        "width": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "width",
                        "height"
                      ],
                      "type": "object"
                    },
                    "tracks": {
                      "maximum": 20000,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "vias": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "zones": {
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "name",
                    "copperLayers",
                    "sizeMm",
                    "footprints",
                    "pads",
                    "nets",
                    "tracks",
                    "vias",
                    "zones",
                    "libraries"
                  ],
                  "type": "object"
                },
                "checks": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "detail": {
                        "type": "string"
                      },
                      "status": {
                        "enum": [
                          "passed",
                          "failed",
                          "not_checked"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "status",
                      "detail"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "drc": {
                  "additionalProperties": false,
                  "properties": {
                    "errors": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "parity": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "unconnected": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "violations": {
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "description": {
                            "type": "string"
                          },
                          "items": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "position": {
                            "additionalProperties": false,
                            "properties": {
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "x",
                              "y"
                            ],
                            "type": "object"
                          },
                          "severity": {
                            "enum": [
                              "error",
                              "warning"
                            ],
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "severity",
                          "type",
                          "description",
                          "items"
                        ],
                        "type": "object"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "warnings": {
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "errors",
                    "warnings",
                    "unconnected",
                    "parity",
                    "violations"
                  ],
                  "type": "object"
                },
                "edits": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "after": {
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ]
                        },
                        "type": "object"
                      },
                      "before": {
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ]
                        },
                        "type": "object"
                      },
                      "detail": {
                        "type": "string"
                      },
                      "edit": {
                        "$ref": "#/properties/output/properties/example/$defs/edit"
                      },
                      "status": {
                        "enum": [
                          "applied",
                          "rejected"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "edit",
                      "status",
                      "detail"
                    ],
                    "type": "object"
                  },
                  "maxItems": 50,
                  "type": "array"
                },
                "erc": {
                  "additionalProperties": false,
                  "properties": {
                    "errors": {
                      "minimum": 0,
                      "type": "integer"
                    },
                    "violations": {
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "description": {
                            "type": "string"
                          },
                          "items": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "position": {
                            "additionalProperties": false,
                            "properties": {
                              "x": {
                                "type": "number"
                              },
                              "y": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "x",
                              "y"
                            ],
                            "type": "object"
                          },
                          "severity": {
                            "enum": [
                              "error",
                              "warning"
                            ],
                            "type": "string"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "severity",
                          "type",
                          "description",
                          "items"
                        ],
                        "type": "object"
                      },
                      "maxItems": 100,
                      "type": "array"
                    },
                    "warnings": {
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "errors",
                    "warnings",
                    "violations"
                  ],
                  "type": "object"
                },
                "expiresAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "exports": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "detail": {
                        "type": "string"
                      },
                      "name": {
                        "enum": [
                          "project.zip",
                          "gerbers.zip",
                          "bom.csv",
                          "pos.csv",
                          "schematic.pdf",
                          "board.pdf",
                          "board-top.svg",
                          "board-top.png",
                          "report.json"
                        ],
                        "type": "string"
                      },
                      "status": {
                        "enum": [
                          "generated",
                          "failed"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "status",
                      "detail"
                    ],
                    "type": "object"
                  },
                  "maxItems": 9,
                  "type": "array"
                },
                "limitations": {
                  "items": {
                    "maxLength": 4096,
                    "type": "string"
                  },
                  "maxItems": 16,
                  "type": "array"
                },
                "profile": {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "enum": [
                        "2-layer-standard",
                        "2-layer-fine",
                        "4-layer-standard"
                      ],
                      "type": "string"
                    },
                    "rules": {
                      "additionalProperties": false,
                      "properties": {
                        "copperLayers": {
                          "maximum": 8,
                          "minimum": 1,
                          "type": "integer"
                        },
                        "minAnnularRingMm": {
                          "type": "number"
                        },
                        "minClearanceMm": {
                          "type": "number"
                        },
                        "minCopperToEdgeMm": {
                          "type": "number"
                        },
                        "minHoleToHoleMm": {
                          "type": "number"
                        },
                        "minSilkToPadMm": {
                          "type": "number"
                        },
                        "minTrackWidthMm": {
                          "type": "number"
                        },
                        "minViaDiameterMm": {
                          "type": "number"
                        },
                        "minViaDrillMm": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "copperLayers",
                        "minTrackWidthMm",
                        "minClearanceMm",
                        "minViaDiameterMm",
                        "minViaDrillMm",
                        "minAnnularRingMm",
                        "minHoleToHoleMm",
                        "minCopperToEdgeMm",
                        "minSilkToPadMm"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "name",
                    "rules"
                  ],
                  "type": "object"
                },
                "status": {
                  "enum": [
                    "passed",
                    "failed"
                  ],
                  "type": "string"
                },
                "tools": {
                  "additionalProperties": false,
                  "properties": {
                    "kicad": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "kicad"
                  ],
                  "type": "object"
                },
                "truncated": {
                  "type": "boolean"
                },
                "warnings": {
                  "items": {
                    "maxLength": 4096,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "status",
                "tools",
                "profile",
                "board",
                "edits",
                "erc",
                "drc",
                "exports",
                "checks",
                "warnings",
                "limitations",
                "truncated",
                "expiresAt",
                "artifacts"
              ],
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  },
  "builder-code": {
    "info": {
      "s": [
        "cdp_sdk_server"
      ]
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "additionalProperties": false,
      "properties": {
        "a": {
          "description": "App builder code",
          "pattern": "^[a-z0-9_]{1,32}$",
          "type": "string"
        },
        "s": {
          "description": "Service builder codes",
          "items": {
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          },
          "maxItems": 11,
          "type": "array"
        },
        "w": {
          "description": "Wallet builder code",
          "pattern": "^[a-z0-9_]{1,32}$",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "eip2612GasSponsoring": {},
  "erc20ApprovalGasSponsoring": {},
  "payment-identifier": {
    "info": {
      "required": true
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "id": {
          "maxLength": 128,
          "minLength": 16,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": [
        "required"
      ],
      "type": "object"
    }
  }
}

Use it

curl

curl "https://pcb.api.williamrobinson.dev/v1/pcb/fabricate"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://pcb.api.williamrobinson.dev/v1/pcb/fabricate");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://pcb.api.williamrobinson.dev/v1/pcb/fabricate")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/8209.json, and this resource appears in /discovery/resources and /discovery/search.