API reference / Collectors
3 operations.
/api/v1/me/deletionWhat it removes, what it keeps (anonymized) and which shops change hands, for the confirmation.
collector.previewAccountDeletion()account:read(API keys are coming soon)If-None-MatchX-Request-IdWhat deleting the account removes, keeps and hands over.
emailstring or nullrequiredusernamestring or nullrequiredcopiesobjectrequiredownedintegerrequiredwishlistintegerrequiredsoldintegerrequiredphotosintegerrequiredscansintegerrequiredfilesintegerrequiredmarketObservationsintegerrequiredAnonymized purchase and sale prices contributed while sharing was on.
shareMarketDatabooleanrequiredsubscriptionobject or nullrequiredplanstringrequiredstatusstringrequiredrenewsstring (date-time) or nullrequiredstoresarray of objectrequiredShops the collector owns and what happens to each.
idstring (uuid)requirednamestringrequiredoutcomeenumrequiredOne oftransferclosekeeps_other_owner
heirstring or nullrequiredopenHoldsintegerrequiredcompletedSalesintegerrequiredunauthorized: Not signed in (no session or token, or an expired one).
internal: Something went wrong on our side (quote the requestId).
curl 'https://collection.id/api/v1/me/deletion' \
-H "Authorization: Bearer $COLLECTOR_TOKEN"await collector.previewAccountDeletion();/api/v1/me/deletionDeletes the signed-in account. Confirm with { "confirmation": "DELETE" }; nothing in the body names an account.
collector.deleteMyAccount()account:delete(API keys are coming soon)X-Request-Idobject
confirmationstringrequiredType DELETE to confirm.
removeMarketDatabooleanoptionaldefault falseAlso remove the anonymized prices this account contributed (kept by default, without anything that identifies you).
The account is gone.
deleted"true"requiredobservationsKeptintegerrequiredobservationsRemovedintegerrequiredfilesRemovedintegerrequiredinvalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
confirmation_required: Type DELETE to confirm.
unauthorized: Not signed in (no session or token, or an expired one).
internal: Something went wrong on our side (quote the requestId).
curl -X POST 'https://collection.id/api/v1/me/deletion' \
-H "Authorization: Bearer $COLLECTOR_TOKEN" \
-H 'Content-Type: application/json' \
-d @body.jsonawait collector.deleteMyAccount({ body: { … } });/api/v1/me/profileProfile and privacy settings. Only the fields sent change. A public profile needs a username (its address).
collector.updateMyProfile()account:write(API keys are coming soon)X-Request-Idobject
usernamestring or nulloptionalat most 80 charactersThe public profile’s address; null or empty clears it.
display_namestring or nulloptionalat most 160 charactersbiostring or nulloptionalat most 1200 characterslocationstring or nulloptionalat most 160 characterswebsitestring or nulloptionalat most 400 charactersAn http(s) link.
avatar_pathstring or nulloptionalat most 512 charactersA file you uploaded to the avatars bucket: <your id>/<name>.webp|jpg|png.
is_publicbooleanoptionalshow_valuesbooleanoptionalshow_wishlistbooleanoptionalshare_market_databooleanoptionalshare_usage_statsbooleanoptionalCount this collector in first-party usage statistics; off deletes what was recorded.
preferred_currencyenumoptionalThe currency prices are recorded and totals shown in.
One ofUSDCADGBPEURAUDNZD
onboarded"true"optionalFirst-run onboarding finished or skipped.
object
Null only if the profile vanished mid-request.
invalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
unauthorized: Not signed in (no session or token, or an expired one).
not_found: The profile doesn’t exist.
internal: Something went wrong on our side (quote the requestId).
curl -X PATCH 'https://collection.id/api/v1/me/profile' \
-H "Authorization: Bearer $COLLECTOR_TOKEN" \
-H 'Content-Type: application/json' \
-d @body.jsonawait collector.updateMyProfile({ body: { … } });