{"templateId":"api_docs","sharedDataIds":{"apiDocsStore":"api-docs-fm-integration/openapi.json","sidebar":"sidebar-sidebars.yaml"},"props":{"definitionId":"fm-integration/openapi.json","settings":{"baseUrlPath":"/fm-integration/openapi"},"disableAutoScroll":true,"seo":{"title":"FM Integration API v2"},"dynamicMarkdocComponents":[],"metadata":{"type":"openapi","title":"FM Integration API v2","version":"v2","description":"Loadlink FM Integration API — v2\n\nPost loads/equipment, search reference data, and retrieve leads.\n\n**New here?** [Check your access →](/access)\n\nAll endpoints require a bearer token — call `POST /v2/authorize` with your\norganization's integration email and org token to get one. Your Salesforce account\nadmin provisions the org token; it is shared across every sub-account in your\norganization.\n\n**Errors**: 400 responses follow RFC 9457 (`ProblemDetails`) with a structured\n`errors[]` array of `{name, reason}` pairs. 401 responses have no body.\n429 (rate limit exceeded) includes `X-RateLimit-*` headers and `Retry-After`.\n\n**Idempotency**: `POST /v2/postings/loads` and `POST /v2/postings/equipment`\naccept an optional `Idempotency-Key` header (client-generated UUID v4) to safely\nretry without creating duplicates. DELETE endpoints do not support this header.\n\n**Example payloads**: every operation below has a sample request/response for\nillustration only — cities, tokens, rates, etc. are made up. Substitute your own\nvalid values both in \"Try it\" and in real integration code; nothing about the\nexample values themselves is required or enforced."},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"developers.loadlink.ca","port":4000,"ipAddress":"216.73.216.200"},"lang":"default_locale","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"develop"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/fm-integration/openapi","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}