Skip to content
GlyphTechnologies

Getting started

Quickstart

From a key to a priced job in five calls.

This guide prices a part and sends the invoice in five calls. You need a key tied to a customer account. See Authentication.

Set the key once:

export KEY=hiero_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

1. Read the machine catalog

curl https://glyphtech.io/api/intake/machines \
  -H "Authorization: Bearer $KEY"
{
  "machines": [
    { "id": "MILL", "name": "CNC Mill", "type": "milling", "unattended": false, "hourly_rate_cents": 9000 },
    { "id": "BENCH", "name": "Assembly / Deburr Bench", "type": "manual", "unattended": false, "hourly_rate_cents": 6000 }
  ],
  "pricing": { "setup_fee_cents": 5000, "min_charge_cents": 2500, "currency": "usd" }
}

You name these ids in each operation.

2. Create the job

curl -X POST https://glyphtech.io/api/intake/jobs \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: po-2026-0142" \
  -d '{
    "name": "Bracket run, 50 pcs",
    "material": "304 stainless",
    "material_cost_cents": 12000,
    "quantity": 50,
    "external_reference": "PO-2026-0142",
    "operations": [
      {"op_ref": "OP-10", "name": "Rough mill", "machine_options": "MILL", "duration_hr": 2},
      {"op_ref": "OP-20", "name": "Deburr", "machine_options": "BENCH", "duration_hr": 0.5, "predecessors": "OP-10"}
    ]
  }'

Response, 201:

{
  "id": "2c5c95fc-0ec3-4a30-9d75-17d6e012c645",
  "status": "estimated",
  "next": "accept",
  "estimate": { "machine_cents": 21000, "material_cents": 12000, "setup_cents": 5000, "total_cents": 38000 },
  "auto_quote_limit_cents": 50000
}

Keep the id.

3. Attach the files

curl -X POST https://glyphtech.io/api/intake/jobs/$JOB/files \
  -H "Authorization: Bearer $KEY" \
  -F files=@bracket.step -F files=@drawing.pdf
{
  "files": [
    { "id": "7d0b…", "filename": "bracket.step", "size_bytes": 184320, "content_type": "application/octet-stream", "uploaded_at": "2026-10-12T14:05:01.221+00:00" },
    { "id": "9e4a…", "filename": "drawing.pdf", "size_bytes": 61002, "content_type": "application/pdf", "uploaded_at": "2026-10-12T14:05:01.398+00:00" }
  ]
}

4. Accept

curl -X POST https://glyphtech.io/api/intake/jobs/$JOB/accept \
  -H "Authorization: Bearer $KEY"

Within your auto-quote limit, 201:

{
  "id": "2c5c95fc-0ec3-4a30-9d75-17d6e012c645",
  "status": "invoiced",
  "next": "pay",
  "quoted_total_cents": 38000,
  "invoice": { "url": "https://invoice.stripe.com/i/acct_…/…", "invoiced_at": "2026-10-12T14:06:10.002+00:00", "paid_at": null },
  "accepted": true
}

Above the limit, 202:

{
  "id": "2c5c95fc-0ec3-4a30-9d75-17d6e012c645",
  "status": "estimated",
  "next": "awaiting_staff_quote",
  "quote_requested_at": "2026-10-12T14:06:10.002+00:00",
  "accepted": true,
  "awaiting": "staff_quote"
}

See Accept and pay.

5. Track

curl https://glyphtech.io/api/intake/jobs/$JOB \
  -H "Authorization: Bearer $KEY"
{
  "id": "2c5c95fc-0ec3-4a30-9d75-17d6e012c645",
  "status": "paid",
  "next": "awaiting_release",
  "invoice": { "url": "https://invoice.stripe.com/i/acct_…/…", "invoiced_at": "2026-10-12T14:06:10.002+00:00", "paid_at": "2026-10-12T15:40:51.000+00:00" },
  "schedule": null,
  "operations": [ … ],
  "files": [ … ]
}

After payment, status becomes paid, and then queued when we release it to the shop.

Next