factory.json

Make your factory machine-readable

v1.0

A single JSON file describes a factory's capabilities, certifications, production constraints, and interaction endpoints — in a format any AI agent, procurement platform, or search engine can understand.

Quick Start

1

Create

Create a factory.json file with 4 required fields

2

Extend

Add optional fields from the specification

3

Validate

Validate against the JSON Schema

4

Host

Serve at /.well-known/factory.json on your domain

Minimal Example
{
  "$schema": "https://factoryschema.org/factory.schema.json",
  "name": "My Factory",
  "location": "Shenzhen, CN",
  "capabilities": ["CNC milling", "CNC turning"]
}

Only 4 fields required: $schema, name, location, and capabilities. Everything else is optional.

Why factory.json

🔍

Discoverable

Hosted at a RFC 8615 well-known URI. AI agents and platforms find your factory without any prior knowledge of your site structure.

✏️

Minimal

Start with just 4 required fields. Add certifications, equipment, lead times, quality processes, and more as you go.

Machine-Readable

Validated against JSON Schema Draft 2020-12. Structured data that software can parse, compare, and act on.

Schema Overview

The factory.json schema organizes factory data into logical sections. Required fields are marked with a badge.

Root Fields required

  • $schema req — Schema URI
  • name req — Factory trade name
  • location req — String or structured object
  • capabilities req — Processes, materials, equipment
  • version — Schema version ("1.0")
  • legal_name — Registered legal entity name
  • description — Free-text description
  • vertical — Industry vertical
  • founded_year — Year established
  • employees — Employee count range
  • languages — ISO 639-1 language codes
  • website — Factory website URL
  • industries_served — Markets and segments

Capabilities required

  • processes req — Manufacturing processes
  • materials — Workable materials
  • finishes — Surface finishes / post-processing
  • secondary_services — Assembly, heat treatment, etc.
  • equipment — Equipment list with specs

Shorthand: ["CNC milling", "turning"]

Certifications

  • type req — e.g. "ISO 9001", "GOTS"
  • body — Issuing body
  • id — Certificate ID
  • issued / expires — Dates
  • url — Verification link

Constraints

  • moq — Minimum order quantity
  • lead_time — Min/max days, sample days
  • capacity — Production capacity
  • max_dimensions — Max part dimensions
  • max_weight — Max part weight
  • tolerances — Standard and precision
  • min_order_value — Minimum order value

Quality

  • testing — Testing methods
  • qc_process — QC workflow description
  • inspection_equipment — Measurement gear
  • documentation — FAI, CoC, mill certs
  • defect_rate_ppm — Defect rate in PPM
  • traceability — Material traceability

Engineering

  • file_formats — STEP, Gerber, DXF, etc.
  • dfm_review — DFM feedback offered
  • prototyping — Sample runs available
  • reverse_engineering — From physical sample
  • cad_cam_software — In-house software
  • codesign — Co-design services

Shipping

  • incoterms — EXW, FOB, CIF, DDP
  • methods — Air, sea, express
  • markets_served — Countries / regions
  • packaging — Packaging capabilities
  • free_port — Nearest free trade zone

Payment

  • terms — Net 30, deposit, etc.
  • methods — T/T, L/C, PayPal
  • currencies — ISO 4217 codes

Compliance

  • ip_protection — IP measures
  • export_controls — ITAR, EAR
  • environmental — RoHS, ISO 14001
  • social — SA8000, BSCI, SMETA

Endpoints

  • rfq — RFQ submission URI
  • api — REST API base URL
  • mcp — MCP server URI
  • website — Factory website
  • email — Contact email
  • phone — Contact phone

Media

  • logo — Logo image URL
  • cover — Cover / hero image
  • gallery — Gallery image URLs

Business Hours

  • timezone — IANA timezone
  • hours — Operating hours
  • response_time — RFQ response time

Custom

  • Any key-value pairs allowed
  • Vertical-specific escape hatch
  • e.g. max_layers for PCB, gsm_range for textiles

Examples

Real-world factory profiles across manufacturing verticals.

Precision Works Manufacturing Co. — Aerospace-grade CNC machining in Shenzhen, China. 5-axis milling, wire EDM, AS9100D certified. Full example with all schema sections.
factory-machine-shop.json
{
  "$schema": "https://factoryschema.org/factory.schema.json",
  "version": "1.0",
  "name": "Precision Works Manufacturing Co.",
  "legal_name": "Precision Works Manufacturing (Shenzhen) Co., Ltd.",
  "description": "High-precision CNC machining facility specializing in aerospace and medical-grade components.",
  "vertical": "machining",
  "location": {
    "city": "Shenzhen",
    "region": "Guangdong",
    "country": "CN",
    "postal_code": "518000",
    "timezone": "Asia/Shanghai",
    "coordinates": { "lat": 22.5431, "lng": 114.0579 }
  },
  "founded_year": 2008,
  "employees": { "min": 120, "max": 150 },
  "languages": ["zh", "en"],
  "website": "https://precisionworks.example.com",
  "industries_served": [
    "aerospace", "medical devices", "defense",
    "semiconductor equipment", "robotics"
  ],
  "capabilities": {
    "processes": [
      "5-axis CNC milling", "CNC turning", "wire EDM",
      "sinker EDM", "surface grinding",
      "cylindrical grinding", "jig boring"
    ],
    "materials": [
      "aluminum 6061-T6", "aluminum 7075-T6",
      "titanium Ti-6Al-4V", "stainless steel 304",
      "stainless steel 316L", "Inconel 718", "PEEK"
    ],
    "finishes": [
      "anodizing Type II (color)", "anodizing Type III (hard coat)",
      "passivation (citric & nitric)", "electropolishing",
      "bead blasting", "powder coating"
    ],
    "equipment": [
      {
        "name": "DMG Mori DMU 50",
        "type": "5-axis CNC mill",
        "count": 4,
        "specs": { "travel_x_mm": 500, "spindle_rpm": 20000 }
      },
      {
        "name": "Mazak QTN-200",
        "type": "CNC lathe",
        "count": 6
      }
    ]
  },
  "certifications": [
    { "type": "ISO 9001:2015", "body": "TÜV SÜD", "expires": "2026-06-14" },
    { "type": "AS9100D", "body": "BSI", "expires": "2026-08-31" },
    { "type": "ITAR Registered", "body": "U.S. DDTC" }
  ],
  "constraints": {
    "moq": { "min": 1, "max": 10000, "unit": "pieces" },
    "lead_time": {
      "min_days": 10, "max_days": 35,
      "sample_days": 5, "expedite_available": true
    },
    "tolerances": {
      "standard": "±0.025 mm (ISO 2768-m)",
      "precision": "±0.002 mm"
    }
  },
  "quality": {
    "testing": ["CMM inspection", "first article inspection (FAI / AS9102)"],
    "defect_rate_ppm": 800
  },
  "endpoints": {
    "rfq": "https://precisionworks.factoryschema.org/rfq",
    "mcp": "https://precisionworks.factoryschema.org/.well-known/mcp",
    "email": "sales@precisionworks.example.com"
  }
}
TaiPCB Technology Co., Ltd. — Multilayer and HDI PCB fabrication in Taoyuan, Taiwan. Up to 32 layers, 2.5 mil trace/space. IATF 16949 and UL certified.
factory-pcb-fab.json
{
  "$schema": "https://factoryschema.org/factory.schema.json",
  "version": "1.0",
  "name": "TaiPCB Technology Co., Ltd.",
  "description": "Advanced multilayer and HDI PCB fabrication for automotive, telecom, and industrial applications.",
  "vertical": "pcb",
  "location": {
    "city": "Taoyuan",
    "country": "TW",
    "timezone": "Asia/Taipei"
  },
  "founded_year": 2003,
  "employees": { "min": 300, "max": 350 },
  "languages": ["zh", "en", "ja"],
  "capabilities": {
    "processes": [
      "multilayer PCB fabrication",
      "HDI (High Density Interconnect)",
      "flex-rigid PCB", "impedance control",
      "blind/buried vias", "heavy copper (up to 6 oz)"
    ],
    "materials": [
      "FR-4 (Tg 170°C)", "FR-4 high-Tg (Tg 180°C)",
      "Rogers RO4350B", "polyimide", "aluminum-backed"
    ],
    "finishes": [
      "ENIG", "HASL (lead-free)", "OSP",
      "immersion silver", "hard gold"
    ]
  },
  "certifications": [
    { "type": "ISO 9001:2015", "body": "SGS" },
    { "type": "IATF 16949:2016", "body": "TÜV Rheinland" },
    { "type": "UL Listed", "body": "UL", "id": "E123456" },
    { "type": "ISO 14001:2015", "body": "SGS" }
  ],
  "constraints": {
    "moq": { "min": 5, "max": 50000, "unit": "panels" },
    "lead_time": {
      "min_days": 5, "max_days": 25,
      "sample_days": 3, "expedite_available": true
    },
    "tolerances": {
      "standard": "±0.1 mm (outline)",
      "min_feature_size": "2.5 mil trace/space (63 µm)"
    }
  },
  "quality": {
    "testing": [
      "automated optical inspection (AOI)",
      "electrical testing (flying probe & fixture)",
      "impedance testing (CITS)"
    ],
    "defect_rate_ppm": 500
  },
  "endpoints": {
    "rfq": "https://taipcb.factoryschema.org/rfq",
    "mcp": "https://taipcb.factoryschema.org/.well-known/mcp",
    "email": "rfq@taipcb.example.com"
  },
  "custom": {
    "max_layers": 32,
    "min_trace_mil": 2.5,
    "min_via_diameter_mm": 0.1,
    "max_copper_weight_oz": 6
  }
}
Sunrise Textiles Pvt. Ltd. — Vertically integrated knit garment manufacturer in Tirupur, India. Organic cotton, GOTS certified, XS-5XL.
factory-textile.json
{
  "$schema": "https://factoryschema.org/factory.schema.json",
  "version": "1.0",
  "name": "Sunrise Textiles Pvt. Ltd.",
  "description": "Vertically integrated knit garment manufacturer specializing in organic cotton basics and activewear.",
  "vertical": "textiles",
  "location": {
    "city": "Tirupur",
    "region": "Tamil Nadu",
    "country": "IN",
    "timezone": "Asia/Kolkata"
  },
  "founded_year": 1997,
  "employees": { "min": 500, "max": 600 },
  "languages": ["ta", "en", "hi"],
  "capabilities": {
    "processes": [
      "knitting", "dyeing", "cut-and-sew",
      "embroidery", "screen printing",
      "sublimation printing", "garment washing"
    ],
    "materials": [
      "organic cotton", "BCI cotton",
      "cotton-polyester blends", "recycled polyester",
      "Tencel / lyocell", "bamboo viscose"
    ],
    "finishes": [
      "enzyme wash", "silicone softener",
      "anti-pilling", "moisture wicking"
    ]
  },
  "certifications": [
    { "type": "GOTS", "body": "Control Union", "id": "CU-1012345" },
    { "type": "OEKO-TEX Standard 100", "body": "Hohenstein" },
    { "type": "GRS (Global Recycled Standard)", "body": "Control Union" },
    { "type": "ISO 9001:2015", "body": "Bureau Veritas" }
  ],
  "constraints": {
    "moq": { "min": 500, "max": 50000, "unit": "pieces" },
    "lead_time": {
      "min_days": 21, "max_days": 45,
      "sample_days": 10, "expedite_available": true
    },
    "capacity": { "value": 50000, "unit": "pieces", "period": "month" }
  },
  "quality": {
    "testing": [
      "fabric GSM testing",
      "color fastness (wash, rub, light)",
      "shrinkage testing (AATCC 135)",
      "pilling resistance (ISO 12945)"
    ],
    "defect_rate_ppm": 2500
  },
  "endpoints": {
    "rfq": "https://sunrise.factoryschema.org/rfq",
    "mcp": "https://sunrise.factoryschema.org/.well-known/mcp",
    "email": "orders@sunrisetextiles.example.com"
  },
  "custom": {
    "fabric_types": ["jersey", "interlock", "rib", "pique", "french terry"],
    "gsm_range": { "min": 120, "max": 400 },
    "size_range": "XS-5XL",
    "color_matching": "Pantone TPX/TCX"
  }
}

Specification Highlights

Key sections from the full specification.

Discovery Mechanism

A factory.json file SHOULD be hosted at the well-known URI per RFC 8615:

https://{domain}/.well-known/factory.json
  • MUST be served over HTTPS
  • MUST use Content-Type: application/json
  • SHOULD set Cache-Control: max-age=86400 (24 hours)
  • MAY also be hosted at alternative paths (e.g. /factory.json)

Required Fields

FieldTypeDescription
$schemastringMUST be "https://factoryschema.org/factory.schema.json"
namestringTrade name of the factory (non-empty)
locationstring | objectFactory location — string shorthand or structured object with city, country, coordinates
capabilitiesstring[] | objectWhat the factory can produce — array shorthand or full object with processes, materials, equipment

Versioning Policy

factory.json follows Semantic Versioning 2.0.0:

  • Patch (e.g. 1.0.1) — Clarifications, typo fixes. No schema changes.
  • Minor (e.g. 1.1.0) — New optional fields. Existing documents remain valid.
  • Major (e.g. 2.0.0) — Breaking changes. Previously valid documents MAY become invalid.

Security Considerations

  • The file is intended to be public. Do NOT include internal pricing, employee PII, API keys, or confidential customer lists.
  • MUST be served over HTTPS to prevent tampering.
  • Consumers SHOULD NOT treat data as verified — claims are self-reported.
  • Publishers MAY implement rate limiting to prevent excessive crawling.
  • Publishers SHOULD set CORS headers if fetched by browser-based apps.

Read Full Specification

Adopt factory.json

Serve your factory.json at the well-known URI so AI agents and platforms can discover it.

1. Create your file

Start with the minimal example and add fields from the schema. Validate against the JSON Schema.

2. Configure your web server

Set up a route to serve the file at /.well-known/factory.json:

Nginx
location = /.well-known/factory.json {
    alias /var/www/factory.json;
    default_type application/json;
    add_header Cache-Control "public, max-age=86400";
    add_header Access-Control-Allow-Origin "*";
}
Apache
RewriteEngine On
RewriteRule ^\.well-known/factory\.json$ /factory.json [L]

<Files "factory.json">
    ForceType application/json
    Header set Cache-Control "public, max-age=86400"
    Header set Access-Control-Allow-Origin "*"
</Files>
Caddy
handle /.well-known/factory.json {
    root * /var/www
    rewrite * /factory.json
    file_server
    header Content-Type application/json
    header Cache-Control "public, max-age=86400"
    header Access-Control-Allow-Origin "*"
}

3. Verify

curl -s https://yourdomain.com/.well-known/factory.json | jq .

Community

factory.json is an open standard. Contributions are welcome.

Propose a New Field

Open a GitHub Issue with the field name, type, motivation, and example. Proposals are discussed for at least 14 days before a decision.

Report a Bug

Found a schema validation issue or spec error? Open an issue with a reproduction JSON snippet.

Submit a PR

Fork, branch from main, update the schema + SPEC.md + examples, and open a pull request.