# Any slot can take an optional audience CSV in the same callcurl -X POST "$base_url/public/v1/teardown/occm/$teardown_id" \ -H "Authorization: Bearer $api_key" \ -H "X-Organization-Id: $org_id" \ -F "file=@/absolute/path/to/occm.pdf" \ -F "audience=Airline, MRO"
Upload and clear the four named-slot documents on a teardown (harvest list, OCCM, aircraft details, non-incident statement).
Teardowns have four named “slots” alongside the generic documents[]
array:
Slot URL fragment
DB column on teardowns
UI label
harvest-list
harvest_list
Harvest List
occm
occm
OCCM
aircraft-details
aircraft_details_doc
Aircraft Details
non-incident-statement
non_incident_statement
Non-Incident Statement
These are dedicated tiles on the teardown detail page. Uploading to a
slot also appends the URL to the generic documents[] array so it
appears both in the slot card AND in the “Documents” section.
The matching column on the teardown row is set to the new URL
(overwriting any previous slot value).
The URL is also appended to teardowns.documents[].
If audience was sent and is different from the teardown’s current
audience, it’s applied + audited.
The file lands in storage at
teardowns/<teardown_id>/<doc_type>/<8-hex>_<filename>.
Replacing a slot does NOT delete the previous slot’s storage file
the previous URL remains in documents[] until you delete it
explicitly. (Most partners run a Clear → Upload sequence.)
# Any slot can take an optional audience CSV in the same callcurl -X POST "$base_url/public/v1/teardown/occm/$teardown_id" \ -H "Authorization: Bearer $api_key" \ -H "X-Organization-Id: $org_id" \ -F "file=@/absolute/path/to/occm.pdf" \ -F "audience=Airline, MRO"