Artifacts and lineage

Every file Emboss makes or receives has an artifact_id: the fillable form, a filled PDF, a receipt, a submission package, a batch row, a fax's transmitted copy, an uploaded document, the xfa_data export a fill of an XFA form returns alongside its filled PDF, and the xfa_render page Emboss draws from a dynamic XFA form's template. The id is opaque and stays valid for as long as the file exists, so an agent can hand a result straight to the next operation without downloading it.

Chain without downloads

With MCP: run commit_proposal, poll get_job until status is ready, then call send_fax with to and the job's artifact_id. Over the API the same call is a JSON body:

curl -X POST https://api.getemboss.ai/fax \
  -H "Authorization: Bearer $EMBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "+15025551212", "artifact_id": "<artifact id from the job>"}'

Every response that hands back a file carries its artifact_id. Jobs with several outputs list them under artifacts with a role (filled, receipt, package, row, transmission).

Several sources at once

A fax can take a list of artifacts and send them as one packet. Each entry names an artifact_id, adds an artifact_token when you are a pay-per-call caller, and may pick pages.

Page selections are comma-separated ranges of 1-based page numbers, each n or n-m, for example 1-3,7; whitespace is ignored and repeats are kept.

A call gives sources, or one of the single source fields, never both.

curl -X POST https://api.getemboss.ai/fax \
  -H "Authorization: Bearer $EMBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": "+15025551212", "sources": [
        {"artifact_id": "<package>", "pages": "1-2"},
        {"artifact_id": "<filled form>"}]}'

The transmitted copy lists every source as an input, in order, so GET /artifacts/{artifact_id} shows exactly which pages of which files went out.

Once an artifact_id exists, the bytes behind it never change; a new render, transformation or copy is a new artifact.

Free utilities

Merge, compose, extract, delete, reorder, rotate and inspect PDF artifacts without downloading or re-uploading them, then use the result directly in a fill or a fax. See Free PDF utilities.

Where a file came from

GET /artifacts/{artifact_id} returns what the file is (kind, size, page count, sha256), the process that produced it (produced_by, with its skill and status), the files that process used (inputs), and the processes that used this file since (used_by). Follow ids to walk further. GET /artifacts/{artifact_id}/content returns the bytes. See the reference.

Pay-per-call callers

A pay-per-call result carries an artifact_token next to its artifact_id. Send both to reuse the file in a later paid operation, for example send a fax of a form you just paid to fill. The token is the proof of ownership; keep it with the id.

After deletion

When a form's documents are deleted under ephemeral processing, Emboss keeps a record of each file, without the file: what kind of file it was, its size, page count and fingerprint, when it was created, and which process produced or used it. The record holds no file names, no field values and no document content. GET /artifacts/{artifact_id} still answers, with status set to gone; the bytes and every operation that would use them answer 410.