TraXmark API v1
OpenAPI 3.1.0. Auth: klucz API trax_… (w bazie tylko hash Argon2id). Błędy RFC7807 z kluczem i18n i x-correlation-id. Cursor pagination cap 100. Anty-enumeracja: nieistniejący zasób i brak dostępu = zawsze 404.
Resources
/api/v1/contacts— read (scopecontacts:read) / write (scopecontacts:write)/api/v1/messages— read (scopemessages:read) / write (scopemessages:write)/api/v1/events— read (scopeevents:read) / write (scopeevents:write)/api/v1/documents— read (scopedocuments:read) / write (scopedocuments:write)/api/v1/envelopes— read (scopeenvelopes:read) / write (scopeenvelopes:write)/api/v1/proposals— read (scopeproposals:read) / write (scopeproposals:write)
Scopes
contacts:readcontacts:writemessages:readmessages:writeevents:readevents:writedocuments:readdocuments:writeenvelopes:readenvelopes:writeproposals:readproposals:write
Endpoints (12)
/api/v1/contacts/api/v1/contacts/{id}/api/v1/messages/api/v1/messages/{id}/api/v1/events/api/v1/events/{id}/api/v1/documents/api/v1/documents/{id}/api/v1/envelopes/api/v1/envelopes/{id}/api/v1/proposals/api/v1/proposals/{id}
SDK snippets
// Node.js
const res = await fetch('https://api.traxmark.com/api/v1/contacts?limit=50', {
headers: { Authorization: `Bearer ${process.env.TRAXMARK_API_KEY}` },
});
if (!res.ok) throw new Error(await res.text()); // RFC7807 JSON
const { items, nextCursor } = await res.json();
# Python
import requests
r = requests.get('https://api.traxmark.com/api/v1/contacts',
headers={'Authorization': f'Bearer {API_KEY}'}, params={'limit': 50})
r.raise_for_status(); data = r.json()