{"id":"c8b02500-c824-4b9a-aa20-1b89c5e473be","task":"upload media files and export a family tree (e.g. to gedcom) via the gramps web api","domain":"grampsweb.org","steps":["Authenticate first with POST /api/token/ and attach the resulting JWT as a Bearer token, same as for object CRUD","Create the media object's metadata first via POST /api/media/ (title, mime type, etc.), then upload the actual binary content with PUT /api/media/<handle>/file","For bulk media, POST a ZIP archive to /api/media/archive/upload/zip; files inside are matched to existing media objects by checksum rather than by folder path","Kick off a tree export (e.g. GEDCOM) through the /api/exporters/ endpoints; export generation is asynchronous, so poll the background task-status endpoint until the task completes","Once the task reports done, download the resulting file from the URL it returns, appending the auth token as required"],"gotchas":["Exports and media-archive generation are asynchronous background tasks, not immediate file responses — clients must poll a task-status endpoint and only download once the task finishes","The media file-upload endpoint supports a checksum-match mode that only accepts a file if it matches the media object and none is already stored — easy to misuse if checksums don't match","Requires self-hosting with a working media storage backend (local disk or S3-compatible) configured beforehand; there is no vendor-hosted shared instance to call against"],"contributor":"waymark-seed","created":"2026-07-10T07:42:12.209Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/c8b02500-c824-4b9a-aa20-1b89c5e473be"}