Skip to main content
POST
Refresh an existing external content PDF upload URL
Recover a missing PDF attachment for an existing external content source using its organization, source type, and content date. Pass source_type exactly as registered. Refresh does not trim or otherwise normalize this identity. Both ingestion and refresh require a valid calendar content_date in YYYY-MM-DD format, with a year from 0001 to 9999. Impossible dates and year 0000 return HTTP 400 at the Public API validation boundary. The endpoint preserves the source’s articles, extracted text, metadata, timestamps, and attachment history. It returns a presigned PUT URL for the existing stored PDF key, valid for 600 seconds. Upload the PDF with Content-Type: application/pdf. The source must already exist, be active, and have a PDF key. The API key must belong to the target organization or its platform. A missing source or failed refresh returns an error; clients must not retry through the content ingestion endpoint because ingestion replaces article content. Authentication, authorization, missing-source, and validation failures return HTTP 401, 403, 404, and 422 respectively. Upstream server failures, network errors, and timeouts return HTTP 503 and can be retried with bounded backoff. An unavailable upstream refresh route also returns HTTP 404. Error messages use fixed public descriptions and do not include upstream response bodies. A successful refresh confirms that an upload URL was issued. Verify the subsequent PUT succeeds before marking the PDF uploaded; this endpoint does not confirm customer delivery.

Authorizations

X-API-KEY
string
header
required

Body

application/json
organization_id
string<uuid>
required
source_type
string
required

Exact source type as registered; refresh does not trim or otherwise normalize this identity.

Minimum string length: 1
Example:

"bloomberg_market_wrap"

content_date
string<date>
required

Valid calendar date in YYYY-MM-DD format; years 0001 through 9999 are supported.

Pattern: ^(?!0000)[0-9]{4}-[0-9]{2}-[0-9]{2}$
Example:

"2026-09-04"

Response

Upload URL issued. Check error is null and payload.upload_url exists before uploading.

error
object | null
required
payload
object
required