POST /v1/boards

Upload Board

Summary

Upload and store a Gerber zip file for later analysis

Description

Uploads a Gerber zip file, stores it with content-addressed deduplication, and returns a board_id for future reference. The board can then be used with DFM analysis and quoting endpoints. Supports idempotency for CI/CD reliability.

Request Example

curl -X POST "http://127.0.0.1:8000/api/v1/boards" \
  -H "Authorization: Bearer $ASAP_API_KEY" \
  -H "Idempotency-Key: <stable-key>" \
  -F "file=@board.zip"

Response Example

{
  "request_id": "req_1234567890abcdef",
  "board_id": "brd_1234567890abcdef",
  "sha256": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456",
  "filename": "board.zip",
  "size_bytes": 1048576
}

Error Codes

This endpoint may return the following error codes:

Code Status Meaning
missing_auth 401 No Authorization header provided
invalid_api_key 403 API key is invalid or missing
invalid_file 400 Uploaded file is not a .zip file
empty_file 400 Uploaded file is empty
board_store_failed 500 Failed to store uploaded board

Authentication

This endpoint requires Bearer token authentication:

Authorization: Bearer YOUR_API_KEY