Discovery plumbing (secondary). This page makes the service findable by someone already searching; it does not replace pipeline work (page 00). Do it once; no paid tier, listing or upgrade (hard rule 6).
What this is: the largest human-searched API directory. Free listing via a public workspace. The workspace URL is also a required input for Step 4 (public-apis table column).
ApertureAPI.https://api.apertureapi.com/openapi.json.| Date | Account | Workspace URL | Loads logged-out? |
|---|---|---|---|
Embedded verbatim from
docs/discovery/submission_drafts/postman_workspace.md— the in-repo file is the source of truth.
DRAFT ONLY. No Postman account has been created, no workspace published, no form submitted. The operator publishes. R9 Step 2.
Why this one is first among the drafts: the Postman collection link is a
required column in the public-apis table, so this artifact is an input to
the next draft, not just a listing of its own.
Name: ApertureAPI
Visibility: Public (Workspace → Options → Workspace overview → Settings →
type: Public → Save)
Summary (one line): Digital holographic reconstruction over HTTP — upload an
interference pattern, get amplitude, phase and a depth-resolved package back.
ApertureAPI reconstructs digital holograms. You send a single intensity frame recording the interference between light scattered by an object and a reference beam; the API propagates that field back to the object plane using angular-spectrum wave optics and returns quantitative amplitude and phase — a measurement of optical path length, not a rendered image. Reconstruction is physics, not a learned model, and the pipeline is deterministic by contract.
The first request in this collection needs no account, no API key and no email address. Send it and you will have a reconstruction. Authentication exists for higher rate limits, larger fields and persisted calibration profiles, not as a gate on trying it.
Every reconstruction returns a
quality_report.jsonalongside the data, with explicit pass / warn / fail bands per metric. Metrics the system cannot establish — absolute height accuracy, per-pixel uncertainty, repeatability — are returned asnot-yet-establishedwith a null value rather than estimated. The strongest published validation artifact is a reconstruction of an independent third-party dataset (UTIRnet, Zenodo record 8059636) whose overall band iswarn; that hologram is synthetic, and no physical-target validation artifact exists yet.
Postman's own stated bar is getting a new user "to their first 200 OK." So the collection opens on the unauthenticated path and the account flow comes later, in that order.
GET {{baseUrl}}/public/form_tokenDescription:
Mint a form token. The anonymous endpoint is gated by an HMAC-signed token instead of an API key: it is bound to your IP and User-Agent, valid 30 minutes, single use, and enforces a minimum dwell of a few seconds before it will be accepted. Run this, then wait ~4 seconds before Request 2.
Tests tab (so Request 2 is a single click):
const body = pm.response.json();
pm.collectionVariables.set("formToken", body.token);
pm.test("token issued", () => pm.expect(body.token).to.be.a("string"));
POST {{baseUrl}}/public/reconstruct (the first 200 OK)Body → form-data:
| Key | Type | Value |
|---|---|---|
form_token |
Text | {{formToken}} |
file |
File | a small sample hologram (ship one with the collection) |
wavelength_um |
Text | 0.635 |
pixel_pitch_um |
Text | 1.85 |
z_min_mm |
Text | 0.0 |
z_max_mm |
Text | 0.2 |
holography_mode |
Text | off-axis |
Description:
Reconstruct a hologram with no account. Send the token from Request 1 (wait a few seconds first — submitting faster than the minimum dwell is rejected with 403). The response body is a ZIP: reconstruction rasters,
quality_report.jsonand provenance sidecars. Save the response to a file to open it.Limits worth knowing before you hit them: a few reconstructions per IP per hour (429), a 75 MB upload cap (413), and a centre-crop to 1920×1080 on the anonymous path. Wavelength and pixel pitch are bounds-checked as a pair and a violation returns 422 naming the constraint — nothing is silently clamped.
GET {{baseUrl}}/calibration/targetsThe calibration catalog. Each entry is an inexpensive physical object with a certified parametric digital twin — an M1.6 hex nut for off-axis rigs, a prepared salt slide for inline. Photograph one on your own rig, send that frame as
calibration_filewith itscalibration_target_idon Request 2, and the server fits your true pixel pitch, wavelength and sensor distance before reconstructing. No account needed for that either; nothing is persisted.
POST {{baseUrl}}/users/signupOnly needed once you want higher limits, larger fields or saved calibration profiles. Returns an
api_key; send it asAuthorization: Bearer <api_key>on/reconstruct_pdhm.
POST {{baseUrl}}/reconstruct_pdhmThe authenticated production path.
/public/reconstructdelegates into this exact pipeline, so the results are directly comparable; what changes is the rate limit, the maximum field size and access to saved calibration profiles.
| Variable | Initial value |
|---|---|
baseUrl |
https://api.apertureapi.com |
formToken |
(empty — set by Request 1's test script) |
Verifiable artifact when executed: the public postman.com/... workspace
URL, opened logged-out, with Request 2 returning 200 and a ZIP body.
Buyer pages to pair with this page: workflow fit. Pipeline stages and KPIs: page 00.