Every Traddal API is snake_case on the wire, in both directions. Request
bodies are accepted as snake_case and responses come back as snake_case —
including nested objects and arrays:
Do not send camelCase keys (customerId, countryCode). They are ignored,
not coerced.
Free-form maps — a catalogue item’s attributes, a flow config, carrier
credentials — are passed through verbatim: their keys are your data and are
never re-cased.
The Admin API is versioned in the path: /admin/api/v1/…. Breaking changes
ship as a sibling version (v2) — v1 stays stable. Additive changes (new
optional fields, new endpoints) can appear in v1 at any time; build clients
that tolerate unknown fields.
Timestamps are ISO 8601 UTC (2026-07-19T14:30:00Z); date-only fields are
YYYY-MM-DD.
Countries are ISO 3166-1 alpha-2 (US, GB, DE).
Currencies are ISO 4217 (USD, GBP, EUR).
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Traddal Developers","description":"Build on Traddal — cross-border duty calculation, HS classification, consignments, and customs manifests.","colors":{"primary":"#10B981","light":"#5EEAD4","dark":"#059669"},"logo":{"light":"https://mintcdn.com/traddal-cb499904/QWsaXW2TyiJ9LSUL/logo/light.svg?fit=max\u0026auto=format\u0026n=QWsaXW2TyiJ9LSUL\u0026q=85\u0026s=e3b89e35313b75e04f4c62b153428da2","dark":"https://mintcdn.com/traddal-cb499904/QWsaXW2TyiJ9LSUL/logo/dark.svg?fit=max\u0026auto=format\u0026n=QWsaXW2TyiJ9LSUL\u0026q=85\u0026s=c8e6bda82f842ae3a628db8e716eddd1","href":"https://mytraddal.com"},"favicon":"https://mintcdn.com/traddal-cb499904/QWsaXW2TyiJ9LSUL/favicon.svg?fit=max\u0026auto=format\u0026n=QWsaXW2TyiJ9LSUL\u0026q=85\u0026s=ff2c22e52200141553f3ba8e1ab64e44","api":{"playground":{"display":"simple"},"examples":{"defaults":"required","languages":["curl","javascript","python"]},"mdx":{"auth":{"method":"bearer"},"server":"https://{partner}.mytraddal.com/admin/api/v1"}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://app.mytraddal.com","label":"Dashboard"}],"primary":{"type":"button","label":"Get API access","href":"https://app.mytraddal.com"}},"footer":{"links":[{"header":"Platform","items":[{"label":"Dashboard","href":"https://app.mytraddal.com"},{"label":"Status","href":"https://mytraddal.com"}]}]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"traddal-cb499904","hasAudioNarration":false,"actualSubdomain":"traddal-cb499904","customDomains":["traddal.dev"],"gitSource":{"type":"github","owner":"mikedgarland","repo":"mytraddal","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ada5c83188562674795cd17","collectionId":"e08a82fc-a980-46b1-8aa0-96ed0fd6bdb0","liveDeploymentHistoryId":"6ada5c83188562674795cd17","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ada5c83188562674795cd17","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":30},{"language":"default","tag":"Classify","count":9},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Consignments","count":6},{"language":"default","tag":"Webhooks","count":6},{"language":"default","tag":"Restrict","count":5},{"language":"default","tag":"Getting started","count":5},{"language":"default","tag":"Overview","count":4},{"language":"default","tag":"Calculate","count":4},{"language":"default","tag":"Concepts","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/conventions","slug":"/guides/conventions","pageMetadata":{"title":"API conventions","description":"snake_case on the wire, path versioning, and predictable errors.","icon":"list-checks","href":"/guides/conventions"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"snake_case on the wire, path versioning, and predictable errors.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`everything-is-snake_case`,children:`Everything is snake_case`}),`\n`,_jsxs(_components.p,{children:[`Every Traddal API is `,_jsx(_components.strong,{children:`snake_case on the wire, in both directions`}),`. Request\nbodies are accepted as snake_case and responses come back as snake_case —\nincluding nested objects and arrays:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"customer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"order-4412\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"receiver\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"company_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Acme Inc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"country_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"US\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"parcels\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"orders\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"unit_value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12.5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }] }] }]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not send camelCase keys (`,_jsx(_components.code,{children:`customerId`}),`, `,_jsx(_components.code,{children:`countryCode`}),`). They are ignored,\nnot coerced.`]})}),`\n`,_jsxs(_components.p,{children:[`Free-form maps — a catalogue item’s `,_jsx(_components.code,{children:`attributes`}),`, a flow `,_jsx(_components.code,{children:`config`}),`, carrier\n`,_jsx(_components.code,{children:`credentials`}),` — are passed through verbatim: their keys are your data and are\nnever re-cased.`]}),`\n`,_jsx(Heading,{level:`2`,id:`item-amounts-are-unit-prices`,children:`Item amounts are unit prices`}),`\n`,_jsxs(_components.p,{children:[`An item’s monetary `,_jsx(_components.code,{children:`amount`}),` / `,_jsx(_components.code,{children:`unit_value`}),` is the `,_jsx(_components.strong,{children:`per-unit`}),` price, not the\nline total. Line totals are always `,_jsx(_components.code,{children:`unit_value × quantity`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`versioning`,children:`Versioning`}),`\n`,_jsxs(_components.p,{children:[`The Admin API is versioned in the path: `,_jsx(_components.code,{children:`/admin/api/v1/…`}),`. Breaking changes\nship as a sibling version (`,_jsx(_components.code,{children:`v2`}),`) — `,_jsx(_components.code,{children:`v1`}),` stays stable. Additive changes (new\noptional fields, new endpoints) can appear in `,_jsx(_components.code,{children:`v1`}),` at any time; build clients\nthat tolerate unknown fields.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsx(_components.p,{children:`Errors are JSON with a conventional shape and an appropriate HTTP status:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invalid or expired token\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Validation failures (`,_jsx(_components.code,{children:`400`}),`) include field-level details from the schema\nvalidator. See `,_jsx(_components.a,{href:`/api-reference/errors`,children:`Status and error codes`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`timestamps-countries-currencies`,children:`Timestamps, countries, currencies`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Timestamps are ISO 8601 UTC (`,_jsx(_components.code,{children:`2026-07-19T14:30:00Z`}),`); date-only fields are\n`,_jsx(_components.code,{children:`YYYY-MM-DD`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Countries are ISO 3166-1 alpha-2 (`,_jsx(_components.code,{children:`US`}),`, `,_jsx(_components.code,{children:`GB`}),`, `,_jsx(_components.code,{children:`DE`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Currencies are ISO 4217 (`,_jsx(_components.code,{children:`USD`}),`, `,_jsx(_components.code,{children:`GBP`}),`, `,_jsx(_components.code,{children:`EUR`}),`).`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"API conventions","description":"snake_case on the wire, path versioning, and predictable errors.","icon":"list-checks","href":"/guides/conventions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Everything is snake_case","slug":"everything-is-snake_case","depth":2,"children":[]},{"title":"Item amounts are unit prices","slug":"item-amounts-are-unit-prices","depth":2,"children":[]},{"title":"Versioning","slug":"versioning","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Timestamps, countries, currencies","slug":"timestamps-countries-currencies","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"traddal-cb499904","siteName":"Traddal Developers","title":"API conventions - Traddal Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-30T14:23:50.869Z","originalFileLocation":"guides/conventions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"snake_case on the wire, path versioning, and predictable errors.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Traddal Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API conventions - Traddal Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"snake_case on the wire, path versioning, and predictable errors.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Traddal Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://traddal.dev/guides/conventions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://traddal-cb499904.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=API+conventions\u0026amp;description=snake_case+on+the+wire%2C+path+versioning%2C+and+predictable+errors.\u0026amp;theme=31333999cfcacfa38cd52daf\u0026amp;signature=c696160d0718cf3d672f5cf457d38f8fc50555be2be7941be8aa5495e4161905\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"API conventions - Traddal Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"snake_case on the wire, path versioning, and predictable errors.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://traddal-cb499904.mintlify.app/_mintlify/api/og/v2?division=Concepts\u0026amp;title=API+conventions\u0026amp;description=snake_case+on+the+wire%2C+path+versioning%2C+and+predictable+errors.\u0026amp;theme=31333999cfcacfa38cd52daf\u0026amp;signature=c696160d0718cf3d672f5cf457d38f8fc50555be2be7941be8aa5495e4161905\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/traddal-cb499904/evIRWto4p_cS0JAK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Traddal Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#10B981\">\u003clink data-mint-head rel=\"canonical\" href=\"https://traddal.dev/guides/conventions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/conventions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://traddal.dev/#organization\",\"name\":\"Traddal Developers\",\"url\":\"https://traddal.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/traddal-cb499904/QWsaXW2TyiJ9LSUL/logo/light.svg?fit=max\u0026auto=format\u0026n=QWsaXW2TyiJ9LSUL\u0026q=85\u0026s=e3b89e35313b75e04f4c62b153428da2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://traddal.dev#website\",\"name\":\"Traddal Developers\",\"url\":\"https://traddal.dev\",\"publisher\":{\"@id\":\"https://traddal.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://traddal.dev/guides/conventions#webpage\",\"url\":\"https://traddal.dev/guides/conventions\",\"name\":\"API conventions\",\"description\":\"snake_case on the wire, path versioning, and predictable errors.\",\"dateModified\":\"2026-07-30T14:23:50.869Z\",\"isPartOf\":{\"@id\":\"https://traddal.dev#website\"},\"breadcrumb\":{\"@id\":\"https://traddal.dev/guides/conventions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://traddal.dev/guides/conventions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Traddal Developers\",\"item\":\"https://traddal.dev\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API conventions\",\"item\":\"https://traddal.dev/guides/conventions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://traddal.dev/guides/conventions#article\",\"headline\":\"API conventions\",\"name\":\"API conventions\",\"description\":\"snake_case on the wire, path versioning, and predictable errors.\",\"url\":\"https://traddal.dev/guides/conventions\",\"mainEntityOfPage\":{\"@id\":\"https://traddal.dev/guides/conventions#webpage\"},\"dateModified\":\"2026-07-30T14:23:50.869Z\",\"publisher\":{\"@id\":\"https://traddal.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://traddal.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Traddal Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Traddal Developers","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"Traddal developer documentation","sidebarTitle":"Home","mode":"wide","href":""},{"title":"Quickstart","icon":"rocket","href":"/guides/quickstart"},{"title":"Partner domains","icon":"globe","href":"/guides/partner-domains"},{"title":"Authentication","icon":"key","href":"/guides/authentication"},{"title":"Connect a mailbox (Outlook / Gmail)","description":"Receive customer email in the Inbox and send from your own address by connecting Outlook or Gmail in Apps.","href":"/guides/mailboxes"}]},{"group":"Concepts","pages":[{"title":"API conventions","icon":"list-checks","href":"/guides/conventions"},{"title":"Reports \u0026 TraddalQL","description":"Explore shipments, billing and payments with a query language you can save and share.","href":"/guides/reports"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/webhooks/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"API conventions - Traddal Developers","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}