Skip to main content
Contributions add symbols to the open-source library buildwithtrace/trace-kicad-symbols-lib. Validation runs locally (no backend); submission is proxied to the backend, which opens the PR.
1

Validate the file — POST /api/contribute/validate

Multipart form with file (.kicad_sym or .kicad_mod, ≤ 10 MB). Parsed locally by kicad_parser.ts against KiCad Library Conventions (KLC). No auth.
{ "valid": true, "errors": [], "warnings": [],
  "symbolName": "LM358", "pinCount": 8 }
2

Submit — POST /api/contribute/submit

Auth required. Multipart form: file, library, description, authorName, authorEmail. Proxies to POST /api/v3/components/submit, which creates the PR (the backend holds the GitHub token).
{ "success": true, "submissionId": "…",
  "message": "Symbol submitted for review. You'll be notified when it's approved." }

Validation rules

  • File must be .kicad_sym (a .kicad_mod is also accepted and detected as a footprint).
  • Max 10 MB.
  • Must be a valid KLC S-expression with a named symbol, at least one pin, and required properties (Description, Keywords, Reference); missing datasheet is a warning.

Backend submit payload

The proxy derives and forwards:
{ "type": "symbol", "name": "…", "library": "…", "description": "…",
  "file_content": "…", "file_format": "kicad_sym", "pin_count": 8, "pad_count": 0 }
StatusMeaning
400Missing required fields
401Not authenticated
422Invalid symbol file
Track submission status from /my-symbols. PRs go through human KLC review before merge.