request_datasheet_upload
Get a signed URL to upload a missing datasheet PDF for a component. Use when datasheet status is 'no_source' or 'unsupported'.
Instructions
Request a signed URL to upload a datasheet PDF for a component whose datasheet we don't have. Use this when search_parts / get_part_details / prefetch_datasheets return datasheet_status='no_source' (and a retry didn't help) or 'unsupported'. Free — the upload fee is only charged on confirm_datasheet_upload after we validate the file.
Flow (3 steps):
Call request_datasheet_upload with the MPN, the file's SHA-256, and its byte size. You get back an upload_url, upload_method ('PUT'), upload_headers, and an opaque upload_token.
Upload the PDF directly to the returned URL with curl:
curl -X PUT -H 'Content-Type: application/pdf' --data-binary @file.pdf "$UPLOAD_URL"(add any headers from upload_headers).Call confirm_datasheet_upload with the upload_token. Server verifies the bytes, re-hashes, checks for the MPN on the first page, charges the upload fee (50¢), and queues extraction. Returns document_id + status='pending'.
Validation rules (checked at confirm time, refunded on failure):
File must be a valid PDF (magic bytes + parseable).
Actual SHA-256 must match expected_sha256.
Actual byte size must match size_bytes (±0).
MPN or its core stem must appear in the first page text (catches wrong-file uploads). Scanned image-only PDFs will fail this check — upload a text-based PDF.
Max 50MB per file. No dev-kit manuals / BOB schematics / app-notes as datasheets — use the matching MPN's actual datasheet.
Uploaded datasheets are scoped to your organization (private). They satisfy read_datasheet, search_datasheets, check_design_fit, and analyze_image for your org's tokens only.
Tokens expire after 15 minutes. If upload fails or times out, just call request_datasheet_upload again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| size_bytes | Yes | Size of the PDF in bytes. Must be ≤ 50_000_000 (50MB) and > 1024. | |
| part_number | Yes | Manufacturer part number the PDF belongs to. Must be a real MPN, not a value or description. | |
| manufacturer | No | Optional. Manufacturer name (e.g. 'Texas Instruments') if the MPN alone doesn't disambiguate. | |
| expected_sha256 | Yes | Lowercase hex SHA-256 of the PDF bytes (64 chars). Used both as the storage key (content-addressed) and to detect tampering. Compute with `shasum -a 256 file.pdf`. |