Open Specification

The factory.json Specification v1.0

A single JSON file that describes what your factory can make — in a format any AI agent, procurement platform, or search engine can read.

What is factory.json?

factory.json is an open schema that makes manufacturing facilities machine-readable. It describes a factory's capabilities, certifications, production constraints, and interaction endpoints in a single, standardized JSON file.

By hosting a factory.json file, factories become discoverable by AI agents, procurement platforms, and automated sourcing tools — without needing custom integrations for each platform.

The schema is intentionally flexible: only a factory's name, location, and processes are required. Everything else — materials, equipment, certifications, lead times, quality processes — can be added incrementally as needed.

Quick Start

The smallest valid factory.json needs just four fields:

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

Serve this file at /.well-known/factory.json on your domain to make your factory discoverable.

Field Reference

Root Fields

$schema string (const) required

Must be "https://argo.trade/factory.schema.json".

version "1.0"

Schema version.

name string required

Trade name of the factory.

legal_name string

Registered legal entity name.

description string

Short free-text description of the factory.

vertical string

Primary industry vertical (free-form, e.g. "machining", "pcb", "textiles").

location string | object required

Factory location. A simple string ("City, Country") or a structured object with city, country (ISO 3166-1 alpha-2), region, postal_code, and coordinates.

founded_year integer

Year the factory was established.

employees { min, max }

Employee count range.

languages string[]

Languages spoken (ISO 639-1 codes).

website URI

Factory website URL.

capabilities string[] | object required

What the factory can produce. Shorthand: array of process strings. Full: object with processes, materials, finishes, and equipment.

certifications object[]

Industry certifications. Each entry has type (required), body, id, issued, expires, url.

constraints object

Production constraints: moq, lead_time, capacity, max_dimensions, tolerances, min_order_value.

quality object

Quality capabilities: testing methods and QC process description.

endpoints object

Machine-readable endpoints: rfq, api, mcp, website, email.

media object

Visual assets: logo, cover, gallery URIs.

custom object

Vertical-specific escape hatch. Any additional key-value pairs for domain-specific data.

capabilities (object form)

When capabilities is an object instead of a simple string array:

processes string[] required

Manufacturing processes offered (free-form strings).

materials string[]

Materials the factory can work with.

finishes string[]

Surface finishes and post-processing available.

equipment object[]

Major equipment. Each: name (required), type, count, specs (free-form object), year_acquired.

constraints

Production constraints and limits. Additional fields are permitted for vertical-specific needs.

moq number | object

Minimum order quantity. Plain number or { min, max, unit }.

lead_time object

{ min_days (required), max_days, sample_days }

capacity object

{ value (required), unit (required), period }

max_dimensions object

{ length, width, height, unit }

tolerances string

General tolerance capability (e.g. "±0.005 mm").

min_order_value object

{ amount, currency }

endpoints

Machine-readable interaction endpoints for AI agents and platforms.

rfq URI

RFQ submission endpoint.

api URI

REST API base URL.

mcp URI

MCP (Model Context Protocol) server URI.

website URI

Factory website.

email string

Contact email address.

certifications[]

Each certification object:

type string required

Certification name (e.g. "ISO 9001", "GOTS", "UL Listed").

body string

Issuing or certifying body.

id string

Certificate ID or number.

issued / expires date (YYYY-MM-DD)

Issuance and expiry dates.

url URI

Link to certificate or verification page.

quality, media, custom

quality.testing string[]

Testing methods and equipment (e.g. "CMM inspection", "AOI").

quality.qc_process string

Free-text description of the QC workflow.

media { logo, cover, gallery }

URIs to logo, cover image, and gallery images.

custom object

Open-ended object for vertical-specific fields (e.g. max_layers for PCB, gsm_range for textiles). Any key-value pairs are allowed.

Examples

Real-world factory profiles across different manufacturing verticals.

factory-machine-shop.json
{
  "$schema": "https://argo.trade/factory.schema.json",
  "version": "1.0",
  "name": "Precision Works Manufacturing Co.",
  "vertical": "machining",
  "location": {
    "city": "Shenzhen",
    "region": "Guangdong",
    "country": "CN"
  },
  "capabilities": {
    "processes": ["5-axis CNC milling", "CNC turning", "wire EDM"],
    "materials": ["aluminum 6061", "titanium Ti-6Al-4V", "stainless steel 316L", "PEEK"],
    "equipment": [
      { "name": "DMG Mori DMU 50", "type": "5-axis CNC mill", "count": 4 },
      { "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" },
    { "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 },
    "tolerances": "±0.005 mm standard, ±0.002 mm on request"
  },
  "quality": {
    "testing": ["CMM inspection", "first article inspection (FAI)"]
  },
  "endpoints": {
    "rfq": "https://precisionworks.argo.trade/rfq",
    "mcp": "https://precisionworks.argo.trade/.well-known/mcp"
  }
}

Hosting Your factory.json

1. Create the file

Start from the minimal example above, then add fields as needed. Validate against the schema to ensure correctness.

2. Serve at a well-known path

https://yourfactory.com/.well-known/factory.json

This follows the RFC 8615 well-known URI convention, making your factory discoverable without any prior knowledge of your site structure.

3. Set the correct Content-Type

Serve the file with Content-Type: application/json. Most web servers do this by default for .json files.

4. Keep it updated

Update your factory.json when capabilities, certifications, or constraints change. AI agents and platforms will periodically re-crawl the file to keep their data fresh.

Want Argo to host it for you?

Register on Argo INFRA and we'll generate and host your factory.json automatically — complete with a verified badge, RFQ endpoint, and MCP server.

Get Early Access