Bearer token authentication using API tokens.
Include the token in the Authorization header as: Authorization: Bearer <token>
Obtain tokens from your Hum representative or contact support@letshum.com. There is no self-serve API key dashboard.
Body
application/json
Service address for the session. Provide one of: street1 and zip; street1, city, and state; or street1, city, and zip. State is optional when zip is present. street2, latitude, longitude, and campaign_id are optional.
Service address. Provide one of: street1 and zip; street1, city, and state; or street1, city, and zip. State is optional when zip is present.
An informational summary returned in API response bodies: ok for successful responses, warning for standard request errors, and error for endpoint-specific failures. Integrations must use the HTTP status code, not request_status, to determine whether a request succeeded.
The status of Internet service qualification for the address distinguishes a completed lookup from one that is not ready yet.
The answer is ready:
available: Providers were found and are returned in data.
no_service: No providers serve this address. data is []. You can act on this now, but Hum re-checks periodically, so re-validate it if you store it long term.
The answer is not ready, keep polling:
pending: The lookup has not finished. data is []. Retry by polling GET /sessions/{token}/services/internet.
retry_later: A transient upstream problem. data is []. Retry by polling GET /sessions/{token}/services/internet.
Something went wrong:
failed: The lookup errored for this address. data is [].
A pending lookup finishes as one of three values: available when providers are found, no_service when the lookup completes and finds none, or failed when it errors. retry_later arises separately and does not follow from pending. These three values should end the polling loop.
Available options:
available,
no_service,
pending,
failed,
retry_later
Example:
"available"
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Hum Documentation","colors":{"primary":"#2a77fa","light":"#F1F5F9","dark":"#0c76f9"},"logo":{"light":"https://mintcdn.com/hum/EGVZNDogcsGNqYtL/logo/hum.svg?fit=max\u0026auto=format\u0026n=EGVZNDogcsGNqYtL\u0026q=85\u0026s=8bd29d065c4bb046f4c7c7f49da36bbb","dark":"https://mintcdn.com/hum/EO5jHcOxNKbOuoxY/logo/hum_white.png?fit=max\u0026auto=format\u0026n=EO5jHcOxNKbOuoxY\u0026q=85\u0026s=3827bdfbb39a028c883c7893813b1b64"},"favicon":"https://mintcdn.com/hum/EGVZNDogcsGNqYtL/favicon.svg?fit=max\u0026auto=format\u0026n=EGVZNDogcsGNqYtL\u0026q=85\u0026s=dff27db0a310e983c60e337475bafbc7","background":{"image":{"light":"https://mintcdn.com/hum/EO5jHcOxNKbOuoxY/images/main-bg_home.svg?fit=max\u0026auto=format\u0026n=EO5jHcOxNKbOuoxY\u0026q=85\u0026s=4f5502fc6992ad9135f88385a79089a8","dark":"https://mintcdn.com/hum/EO5jHcOxNKbOuoxY/images/main-bg_home.svg?fit=max\u0026auto=format\u0026n=EO5jHcOxNKbOuoxY\u0026q=85\u0026s=4f5502fc6992ad9135f88385a79089a8"},"color":{"light":"#ffffff","dark":"#000000"}},"navbar":{"links":[{"href":"mailto:support@letshum.com","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://letshum.com/contact"}},"footer":{"socials":{"github":"https://github.com/letshum","linkedin":"https://www.linkedin.com/company/letshum"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://letshum.com"},{"anchor":"Support","icon":"envelope","href":"mailto:support@letshum.com"},{"anchor":"Operational Status","icon":"chart-simple","href":"https://status.letshum.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hum","hasAudioNarration":false,"actualSubdomain":"hum","customDomains":["docs.letshum.com"],"gitSource":{"type":"github","owner":"letshum","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ab549279a16cafd7957b298","collectionId":"5e80e5ec-8af4-412b-a9b6-48188e05313f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ab549279a16cafd7957b298"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ab549279a16cafd7957b298","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"MCP","count":7},{"language":"default","tag":"Hum Broadband MCP","count":7},{"language":"default","tag":"Integration","count":6},{"language":"default","tag":"Widget Integration","count":4},{"language":"default","tag":"Get Started","count":3},{"language":"default","tag":"Sessions","count":3},{"language":"default","tag":"Analytics","count":2},{"language":"default","tag":"Health Check","count":1}]},"assistantConfig":{},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/sessions/create-new-session","slug":"/api-reference/sessions/create-new-session","pageMetadata":{"title":"Create New Session","description":"Creates a new session for processing a service address. This is typically the first endpoint called when starting \na new address lookup flow.\n\n## Request Flow\n1. Submit service address components\n2. Receive a session token\n3. Use session token in the URL path for subsequent requests\n\n## Processing\nDuring session creation, Hum:\n- Validates and normalizes the address\n- Geocodes the location\n- Identifies available service providers\n- Gathers plan and pricing information\n\n## Response Handling\n- 201: Session created successfully with available provider results in `data`\n- 422: Invalid address components, check error details\n- 429: Rate limit exceeded; retry after the delay in `Retry-After`\n- 503: Address validation is temporarily unavailable; retry after the delay in `Retry-After`\n\n## Important Notes\n- The session token is part of the URL path for all requests after creation\n- The session token is required for all subsequent requests\n- Sessions remain open until they are closed with DELETE\n- Rate limits apply to all requests\n\n## Example Usage\nProvide address using one of: **(street1 and zip)**, **(street1, city, and state)**, or **(street1, city, and zip)**. State is optional when zip is present.\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"zip\": \"48034\"\n}\n```\nOr with city and state, or street+city+zip (no state):\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"city\": \"Southfield\",\n \"state\": \"MI\",\n \"zip\": \"48034\"\n}\n```\n","deprecated":null,"version":null,"openapi":"/swagger.yaml post /sessions","href":"/api-reference/sessions/create-new-session","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Creates a new session for processing a service address. This is typically the first endpoint called when starting\\na new address lookup flow.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Request Flow\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Submit service address components\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Receive a session token\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Use session token in the URL path for subsequent requests\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Processing\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"During session creation, Hum:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Validates and normalizes the address\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Geocodes the location\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Identifies available service providers\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Gathers plan and pricing information\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Response Handling\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"201: Session created successfully with available provider results in \", _jsx(_components.code, {\n children: \"data\"\n })]\n }), \"\\n\", _jsx(_components.li, {\n children: \"422: Invalid address components, check error details\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"429: Rate limit exceeded; retry after the delay in \", _jsx(_components.code, {\n children: \"Retry-After\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"503: Address validation is temporarily unavailable; retry after the delay in \", _jsx(_components.code, {\n children: \"Retry-After\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Important Notes\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"The session token is part of the URL path for all requests after creation\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"The session token is required for all subsequent requests\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Sessions remain open until they are closed with DELETE\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Rate limits apply to all requests\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Example Usage\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Provide address using one of: \", _jsx(_components.strong, {\n children: \"(street1 and zip)\"\n }), \", \", _jsx(_components.strong, {\n children: \"(street1, city, and state)\"\n }), \", or \", _jsx(_components.strong, {\n children: \"(street1, city, and zip)\"\n }), \". State is optional when zip is present.\"]\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"5\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"5\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"POST /sessions\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"street1\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"29090 Tiffany Drive E\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"zip\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"48034\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n }), \"\\n\", _jsx(_components.p, {\n children: \"Or with city and state, or street+city+zip (no state):\"\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"7\",\n language: \"json\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"json\",\n children: _jsxs(_components.code, {\n language: \"json\",\n numberOfLines: \"7\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"POST /sessions\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"{\"\n })\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"street1\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"29090 Tiffany Drive E\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"city\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"Southfield\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"state\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"MI\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \",\"\n })]\n }), \"\\n\", _jsxs(_components.span, {\n className: \"line\",\n children: [_jsx(_components.span, {\n style: {\n color: \"#116329\",\n \"--shiki-dark\": \"#9CDCFE\"\n },\n children: \" \\\"zip\\\"\"\n }), _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \": \"\n }), _jsx(_components.span, {\n style: {\n color: \"#0A3069\",\n \"--shiki-dark\": \"#CE9178\"\n },\n children: \"\\\"48034\\\"\"\n })]\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n style: {\n color: \"#1F2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n children: \"}\"\n })\n }), \"\\n\"]\n })\n })\n })]\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};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create New Session","description":"Creates a new session for processing a service address. This is typically the first endpoint called when starting \na new address lookup flow.\n\n## Request Flow\n1. Submit service address components\n2. Receive a session token\n3. Use session token in the URL path for subsequent requests\n\n## Processing\nDuring session creation, Hum:\n- Validates and normalizes the address\n- Geocodes the location\n- Identifies available service providers\n- Gathers plan and pricing information\n\n## Response Handling\n- 201: Session created successfully with available provider results in `data`\n- 422: Invalid address components, check error details\n- 429: Rate limit exceeded; retry after the delay in `Retry-After`\n- 503: Address validation is temporarily unavailable; retry after the delay in `Retry-After`\n\n## Important Notes\n- The session token is part of the URL path for all requests after creation\n- The session token is required for all subsequent requests\n- Sessions remain open until they are closed with DELETE\n- Rate limits apply to all requests\n\n## Example Usage\nProvide address using one of: **(street1 and zip)**, **(street1, city, and state)**, or **(street1, city, and zip)**. State is optional when zip is present.\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"zip\": \"48034\"\n}\n```\nOr with city and state, or street+city+zip (no state):\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"city\": \"Southfield\",\n \"state\": \"MI\",\n \"zip\": \"48034\"\n}\n```\n","deprecated":null,"version":null,"openapi":"/swagger.yaml post /sessions","href":"/api-reference/sessions/create-new-session","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createSession","security":["28d3d7ae-b013-4cdf-b136-3deb02a6946b"],"tags":["Sessions"],"summary":"Create New Session","description":"Creates a new session for processing a service address. This is typically the first endpoint called when starting \na new address lookup flow.\n\n## Request Flow\n1. Submit service address components\n2. Receive a session token\n3. Use session token in the URL path for subsequent requests\n\n## Processing\nDuring session creation, Hum:\n- Validates and normalizes the address\n- Geocodes the location\n- Identifies available service providers\n- Gathers plan and pricing information\n\n## Response Handling\n- 201: Session created successfully with available provider results in `data`\n- 422: Invalid address components, check error details\n- 429: Rate limit exceeded; retry after the delay in `Retry-After`\n- 503: Address validation is temporarily unavailable; retry after the delay in `Retry-After`\n\n## Important Notes\n- The session token is part of the URL path for all requests after creation\n- The session token is required for all subsequent requests\n- Sessions remain open until they are closed with DELETE\n- Rate limits apply to all requests\n\n## Example Usage\nProvide address using one of: **(street1 and zip)**, **(street1, city, and state)**, or **(street1, city, and zip)**. State is optional when zip is present.\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"zip\": \"48034\"\n}\n```\nOr with city and state, or street+city+zip (no state):\n```json\nPOST /sessions\n{\n \"street1\": \"29090 Tiffany Drive E\",\n \"city\": \"Southfield\",\n \"state\": \"MI\",\n \"zip\": \"48034\"\n}\n```\n","requestBody":"6bd570be-f809-47cc-b016-1aa73f6863da","responses":{"201":"8668fff2-c056-43ae-b3d7-b7b4c2336543","400":"d8a40cb3-5b68-4946-a1db-51df35ebfeb3","401":"e1b95184-f92c-47d9-828e-5067322b8b3b","415":"85476758-79e4-4589-90d0-fd0f03342c8b","422":"7228bd3f-0aac-4591-93db-d5d06f82eda1","429":"31051138-ddcc-41a8-a401-d226f3ae83ed","500":"f568016b-e2c3-4a6b-aba5-2fc6422b39af","503":"875601d8-5a40-4dbb-938b-429dffea0350"},"method":"post","type":"path","servers":["a0fb7d8d-c46d-46cf-b53e-90b496207a53","50a481b3-b8e5-4d61-b045-e37902a020f0"],"path":"/sessions","baseUrlOptions":["https://api-sandbox.letshum.com","https://api.letshum.com"],"title":"Create New Session","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"description":"Service address for the session. Provide one of: **street1 and zip**; **street1, city, and state**; or **street1, city, and zip**. State is optional when zip is present. street2, latitude, longitude, and campaign_id are optional.\n","content":{"application/json":{"schema":{"type":"object","description":"Service address. Provide one of: **street1** and **zip**; **street1**, **city**, and **state**; or **street1**, **city**, and **zip**. State is optional when zip is present.\n","properties":{"street1":{"type":"string","minLength":1,"maxLength":100,"example":"29090 Tiffany Drive E","description":"The street address of the service location.","isRequired":true,"uniqueKey":"street1","typeLabel":"string"},"street2":{"type":"string","minLength":1,"maxLength":50,"example":"A2","description":"The unit, apartment, or suite number of the service location.","uniqueKey":"street2","typeLabel":"string"},"city":{"type":"string","minLength":1,"maxLength":50,"example":"Southfield","description":"The city of the service location. Required when using the (street1, city, state) combination; optional when providing street1 and zip.","uniqueKey":"city","typeLabel":"string"},"state":{"type":"string","pattern":"^[A-Z]{2}$","enum":["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"],"example":"MI","description":"The two-letter state abbreviation. Required when using the (street1, city, state) combination; optional when providing street1 and zip.","uniqueKey":"state","typeLabel":"enum\u003cstring>"},"zip":{"type":"string","pattern":"^\\d{5}(-\\d{4})?$","example":48034,"description":"The ZIP code in 12345 or 12345-6789 format. Required when using the (street1, zip) combination; optional when providing street1, city, and state.","uniqueKey":"zip","typeLabel":"string"},"latitude":{"type":"number","format":"float","example":42.501721339274,"description":"The latitude of the service address.","uniqueKey":"latitude","typeLabel":"number\u003cfloat>"},"longitude":{"type":"number","format":"float","example":-83.286263465881,"description":"The longitude of the service address.","uniqueKey":"longitude","typeLabel":"number\u003cfloat>"},"campaign_id":{"type":"string","minLength":1,"maxLength":100,"example":"1iYyMxsnTy87tFOvukTi7V","description":"A unique identifier for the campaign. This is used to track the source of the session in your internal system.","uniqueKey":"campaign_id","typeLabel":"string"}},"required":["street1"],"uniqueKey":"","typeLabel":"object"},"examples":{"street_and_zip":{"title":"street_and_zip","description":"Minimum address using street and ZIP code (no city or state required)","value":{"street1":"29090 Tiffany Drive E","zip":"48034"}},"street_city_zip":{"title":"street_city_zip","description":"Address with street, city, and zip; state optional when zip is present","value":{"street1":"275 N Berkshire Rd","city":"Bloomfield Hills","zip":"48302"}},"basic_address":{"title":"basic_address","description":"Standard address with city and state","value":{"street1":"29090 Tiffany Drive E","city":"Southfield","state":"MI","zip":"48034"}},"address_with_unit":{"title":"address_with_unit","description":"Address that includes a unit or apartment number","value":{"street1":"123 Main Street","street2":"Apt 4B","city":"Denver","state":"CO","zip":"80202"}},"with_campaign_tracking":{"title":"with_campaign_tracking","description":"Address lookup with campaign tracking for analytics","value":{"street1":"851 Ashwood Dr","city":"Cookeville","state":"TN","zip":"38501","campaign_id":"bucket_of_winning"}},"with_coordinates":{"title":"with_coordinates","description":"Address lookup with precise coordinates for enhanced geocoding","value":{"street1":"29090 Tiffany Drive E","city":"Southfield","state":"MI","zip":"48034","latitude":42.50189,"longitude":-83.29528}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"8668fff2-c056-43ae-b3d7-b7b4c2336543":{"description":"Successful session creation.","headers":{"session_token":{"description":"The session token provided by the Hum API. Used to connect the response to the session in the client system.","required":true,"schema":{"type":"string"},"example":"XqCmeTVgYXrbWrZFZEymkD"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["ok","warning","error"],"example":"ok","description":"An informational summary returned in API response bodies: `ok` for successful responses, `warning` for standard request errors, and `error` for endpoint-specific failures. Integrations must use the HTTP status code, not `request_status`, to determine whether a request succeeded.\n","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"data":{"type":"array","items":{"type":"object","properties":{"provider_id":{"type":"string","example":"130317","description":"FCC provider identifier","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_id","typeLabel":"string"},"provider_name":{"type":"string","example":"Rocket Fiber","description":"The name of the Internet service provider.","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_name","typeLabel":"string"},"telephone":{"oneOf":[{"type":"string","example":"+18332981433","description":"The telephone number associated with the record.","isRequired":true,"uniqueKey":"data.items.[INDEX].telephone.oneOf.0","typeLabel":"string"},{"type":"null","example":"+18332981433","description":"The telephone number associated with the record.","isRequired":true,"uniqueKey":"data.items.[INDEX].telephone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].telephone","typeLabel":"string | null"},"provider_icon":{"oneOf":[{"type":"string","format":"uri","description":"URL for the provider icon image","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_icon.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"URL for the provider icon image","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_icon.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].provider_icon","typeLabel":"string\u003curi> | null"},"provider_logo":{"oneOf":[{"type":"string","format":"uri","example":"https://harmony.letshum.com/images/providers/rocketfiber.png","description":"The logo of the service provider.","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_logo.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"https://harmony.letshum.com/images/providers/rocketfiber.png","description":"The logo of the service provider.","isRequired":true,"uniqueKey":"data.items.[INDEX].provider_logo.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].provider_logo","typeLabel":"string\u003curi> | null"},"url":{"type":"string","format":"uri","example":"https://provider.example.com/register?utm_source=Hum","description":"URL for accessing the provider website through Hum's tracking system","isRequired":true,"uniqueKey":"data.items.[INDEX].url","typeLabel":"string\u003curi>"},"button_label":{"type":"string","example":"Get Started","description":"The text to display on the provider's call-to-action button","isRequired":true,"uniqueKey":"data.items.[INDEX].button_label","typeLabel":"string"},"min_plan_price":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].min_plan_price.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].min_plan_price.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].min_plan_price","typeLabel":"object"},"provider_promo":{"oneOf":[{"type":"object","description":"Provider-level promotional information","properties":{"promo_text":{"oneOf":[{"type":"string","example":"$50 off your first month!","description":"Promotional text from the provider","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_text.oneOf.0","typeLabel":"string"},{"type":"null","example":"$50 off your first month!","description":"Promotional text from the provider","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_text.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_text","typeLabel":"string | null"},"promo_logo":{"oneOf":[{"type":"string","example":"sale-badge","description":"Promotional logo identifier","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo.oneOf.0","typeLabel":"string"},{"type":"null","example":"sale-badge","description":"Promotional logo identifier","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo","typeLabel":"string | null"},"promo_logo_url":{"oneOf":[{"type":"string","format":"uri","example":"https://cdn.letshum.com/promo_icons/banknotes.svg","description":"URL for the promotional icon image","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"https://cdn.letshum.com/promo_icons/banknotes.svg","description":"URL for the promotional icon image","uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0.promo_logo_url","typeLabel":"string\u003curi> | null"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].provider_promo.oneOf.0","typeLabel":"object"},{"type":"null","description":"Provider-level promotional information","properties":{"promo_text":{"oneOf":[{"type":"string","example":"$50 off your first month!","description":"Promotional text from the provider"},{"type":"null","example":"$50 off your first month!","description":"Promotional text from the provider"}]},"promo_logo":{"oneOf":[{"type":"string","example":"sale-badge","description":"Promotional logo identifier"},{"type":"null","example":"sale-badge","description":"Promotional logo identifier"}]},"promo_logo_url":{"oneOf":[{"type":"string","format":"uri","example":"https://cdn.letshum.com/promo_icons/banknotes.svg","description":"URL for the promotional icon image"},{"type":"null","format":"uri","example":"https://cdn.letshum.com/promo_icons/banknotes.svg","description":"URL for the promotional icon image"}]}},"isRequired":true,"uniqueKey":"data.items.[INDEX].provider_promo.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].provider_promo","typeLabel":"object | null"},"url_promo":{"oneOf":[{"type":"object","description":"URL/buyflow-specific promotional information","properties":{"promo_text":{"oneOf":[{"type":"string","example":"Limited time fiber offer!","description":"Promotional text specific to this URL/technology","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_text.oneOf.0","typeLabel":"string"},{"type":"null","example":"Limited time fiber offer!","description":"Promotional text specific to this URL/technology","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_text.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_text","typeLabel":"string | null"},"promo_logo":{"oneOf":[{"type":"string","example":"fiber-special","description":"Promotional logo identifier","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo.oneOf.0","typeLabel":"string"},{"type":"null","example":"fiber-special","description":"Promotional logo identifier","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo","typeLabel":"string | null"},"promo_logo_url":{"oneOf":[{"type":"string","format":"uri","example":"https://cdn.letshum.com/promo_icons/fiber-deal.svg","description":"URL for the promotional icon image","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","example":"https://cdn.letshum.com/promo_icons/fiber-deal.svg","description":"URL for the promotional icon image","uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].url_promo.oneOf.0.promo_logo_url","typeLabel":"string\u003curi> | null"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].url_promo.oneOf.0","typeLabel":"object"},{"type":"null","description":"URL/buyflow-specific promotional information","properties":{"promo_text":{"oneOf":[{"type":"string","example":"Limited time fiber offer!","description":"Promotional text specific to this URL/technology"},{"type":"null","example":"Limited time fiber offer!","description":"Promotional text specific to this URL/technology"}]},"promo_logo":{"oneOf":[{"type":"string","example":"fiber-special","description":"Promotional logo identifier"},{"type":"null","example":"fiber-special","description":"Promotional logo identifier"}]},"promo_logo_url":{"oneOf":[{"type":"string","format":"uri","example":"https://cdn.letshum.com/promo_icons/fiber-deal.svg","description":"URL for the promotional icon image"},{"type":"null","format":"uri","example":"https://cdn.letshum.com/promo_icons/fiber-deal.svg","description":"URL for the promotional icon image"}]}},"isRequired":true,"uniqueKey":"data.items.[INDEX].url_promo.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].url_promo","typeLabel":"object | null"},"offerings":{"type":"array","items":{"type":"object","properties":{"technology":{"type":"string","enum":["Fiber","Cable","DSL","Satellite","Wireless","Other"],"example":"Fiber","description":"The technology used to deliver the service.","isRequired":true,"uniqueKey":"data.items.[INDEX].offerings.items.[INDEX].technology","typeLabel":"enum\u003cstring>"},"max_download_speed":{"type":"integer","minimum":0,"example":1000,"description":"The advertised maximum download speed in Mbps.","isRequired":true,"uniqueKey":"data.items.[INDEX].offerings.items.[INDEX].max_download_speed","typeLabel":"integer"},"max_upload_speed":{"type":"integer","minimum":0,"example":1000,"description":"The advertised maximum upload speed in Mbps.","isRequired":true,"uniqueKey":"data.items.[INDEX].offerings.items.[INDEX].max_upload_speed","typeLabel":"integer"}},"required":["technology","max_download_speed","max_upload_speed"],"uniqueKey":"data.items.[INDEX].offerings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].offerings","typeLabel":"object[]"},"product_catalog":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["internet","internet_add_on","mobile","television","television_add_on","telephone"],"description":"Category identifier","example":"internet","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"category_name":{"type":"string","description":"Human-readable category name","example":"Internet Service","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].category_name","typeLabel":"string"},"category_description":{"type":"string","description":"Description of the category","example":"High-speed internet access plans","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].category_description","typeLabel":"string"},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique product identifier","example":"8083bfe8-a53f-49eb-b0e8-a77d3e9e7577","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"sku":{"type":"string","description":"Product SKU","example":"130235-INT-CBL-01","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].sku","typeLabel":"string"},"name":{"type":"string","description":"Product name","example":"Internet Advantage","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].name","typeLabel":"string"},"category":{"type":"string","description":"Product category","example":"internet","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].category","typeLabel":"string"},"category_name":{"type":"string","description":"Human-readable category name","example":"Internet Service","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].category_name","typeLabel":"string"},"technology":{"type":"string","enum":["cable","fiber","dsl","satellite","wireless","not_applicable"],"description":"Technology used for this product","example":"cable","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].technology","typeLabel":"enum\u003cstring>"},"position":{"type":"integer","minimum":1,"description":"Display position within category","example":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].position","typeLabel":"integer"},"select_type":{"type":"string","enum":["radio","checkbox"],"description":"How this product should be displayed in UI","example":"radio","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].select_type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"Product description","example":"Boosted Internet for users looking to stream and share content quickly.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].description","typeLabel":"string"},"download_speed":{"oneOf":[{"type":"string","description":"Download speed in Mbps. Single value (e.g., '400') or hyphen-delimited range (e.g., '50-100')","example":"50-100","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].download_speed.oneOf.0","typeLabel":"string"},{"type":"null","description":"Download speed in Mbps. Single value (e.g., '400') or hyphen-delimited range (e.g., '50-100')","example":"50-100","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].download_speed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].download_speed","typeLabel":"string | null"},"upload_speed":{"oneOf":[{"type":"string","description":"Upload speed in Mbps. Single value (e.g., '169') or hyphen-delimited range (e.g., '10-25')","example":"10-25","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].upload_speed.oneOf.0","typeLabel":"string"},{"type":"null","description":"Upload speed in Mbps. Single value (e.g., '169') or hyphen-delimited range (e.g., '10-25')","example":"10-25","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].upload_speed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].upload_speed","typeLabel":"string | null"},"data_limit":{"type":"string","description":"Data limit display - either GB amount (e.g., \"50 GB\") or \"Unlimited\"","example":"Unlimited","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].data_limit","typeLabel":"string"},"channel_count":{"type":"integer","minimum":0,"description":"Number of TV channels (for TV products)","example":0,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].channel_count","typeLabel":"integer"},"streaming_apps":{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].streaming_apps.items.[INDEX]","typeLabel":"string"},"description":"Included streaming apps","example":["Disney+ Basic","ESPN+"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].streaming_apps","typeLabel":"string[]"},"is_required_to_checkout":{"type":"boolean","description":"Whether this product is required for checkout","example":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_required_to_checkout","typeLabel":"boolean"},"is_contract_required":{"type":"boolean","description":"Whether a contract is required for this product","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_contract_required","typeLabel":"boolean"},"is_modem_router_included":{"type":"boolean","description":"Whether modem/router is included with this product","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_modem_router_included","typeLabel":"boolean"},"is_bundle_qualifier":{"oneOf":[{"type":"boolean","description":"Whether this product qualifies for bundle discounts","example":null,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_bundle_qualifier.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Whether this product qualifies for bundle discounts","example":null,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_bundle_qualifier.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_bundle_qualifier","typeLabel":"boolean | null"},"bundle_discounts":{"type":"object","description":"Bundle discount information","example":{},"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].bundle_discounts","typeLabel":"object"},"is_local_checkout":{"type":"boolean","description":"Whether checkout is available locally","example":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].is_local_checkout","typeLabel":"boolean"},"required_with_plans":{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].required_with_plans.items.[INDEX]","typeLabel":"string"},"description":"Plans that this product is required with","example":[],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].required_with_plans","typeLabel":"string[]"},"included_with_plans":{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].included_with_plans.items.[INDEX]","typeLabel":"string"},"description":"Plans that include this product","example":[],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].included_with_plans","typeLabel":"string[]"},"only_available_with_plans":{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].only_available_with_plans.items.[INDEX]","typeLabel":"string"},"description":"Plans that this product is only available with","example":[],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].only_available_with_plans","typeLabel":"string[]"},"initial_term_discount_months":{"type":"integer","minimum":0,"description":"Number of months for initial term discount","example":12,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].initial_term_discount_months","typeLabel":"integer"},"second_term_discount_months":{"oneOf":[{"type":"integer","minimum":0,"description":"Number of months for second term discount","example":null,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].second_term_discount_months.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"description":"Number of months for second term discount","example":null,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].second_term_discount_months.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].second_term_discount_months","typeLabel":"integer | null"},"hum_rank":{"oneOf":[{"type":"integer","minimum":0,"maximum":100,"description":"Hum rank score for this product (0-100, higher is better)","example":85,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].hum_rank.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":100,"description":"Hum rank score for this product (0-100, higher is better)","example":85,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].hum_rank.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].hum_rank","typeLabel":"integer | null"},"max_quantity":{"type":"integer","minimum":1,"description":"Maximum quantity allowed for this product","example":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].max_quantity","typeLabel":"integer"},"product_promo":{"type":"object","description":"Product-level promotional information","properties":{"promo_text":{"oneOf":[{"type":"string","description":"Promotional text for this product","example":"$50 off your first month!","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Promotional text for this product","example":"$50 off your first month!","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_text.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_text","typeLabel":"string | null"},"promo_logo_url":{"oneOf":[{"type":"string","format":"uri","description":"URL for the promotional icon image","example":"https://cdn.letshum.com/promo_icons/sale-badge.svg","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_logo_url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"URL for the promotional icon image","example":"https://cdn.letshum.com/promo_icons/sale-badge.svg","uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_logo_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo.promo_logo_url","typeLabel":"string\u003curi> | null"}},"example":{},"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].product_promo","typeLabel":"object"},"info":{"type":"string","description":"Additional product information","example":"5-year price lock guarantee","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].info","typeLabel":"string"},"pricing":{"type":"object","properties":{"extra_data_fee":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.extra_data_fee.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.extra_data_fee.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.extra_data_fee","typeLabel":"object"},"professional_installation_fee":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.professional_installation_fee.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.professional_installation_fee.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.professional_installation_fee","typeLabel":"object"},"self_installation_fee":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.self_installation_fee.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.self_installation_fee.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.self_installation_fee","typeLabel":"object"},"activation_fee":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.activation_fee.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.activation_fee.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.activation_fee","typeLabel":"object"},"initial_term_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.initial_term_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.initial_term_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.initial_term_discount","typeLabel":"object"},"second_term_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.second_term_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.second_term_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.second_term_discount","typeLabel":"object"},"third_term_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.third_term_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.third_term_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.third_term_discount","typeLabel":"object"},"autopay_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.autopay_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.autopay_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.autopay_discount","typeLabel":"object"},"paperless_billing_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.paperless_billing_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.paperless_billing_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.paperless_billing_discount","typeLabel":"object"},"combined_autopay_paperless_discount":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.combined_autopay_paperless_discount.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.combined_autopay_paperless_discount.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.combined_autopay_paperless_discount","typeLabel":"object"},"net_monthly_price":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.net_monthly_price.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.net_monthly_price.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.net_monthly_price","typeLabel":"object"},"gross_monthly_fee":{"type":"object","properties":{"amount_cents":{"type":"integer","example":4999,"description":"The price amount in whole cents. For example, $49.99 would be 4999.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.gross_monthly_fee.amount_cents","typeLabel":"integer"},"currency":{"type":"string","example":"USD","description":"The currency used for the price. USD, for example, would be US Dollars. CDN would be Canadian Dollars.","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.gross_monthly_fee.currency","typeLabel":"string"}},"required":["amount_cents","currency"],"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing.gross_monthly_fee","typeLabel":"object"}},"required":["extra_data_fee","professional_installation_fee","self_installation_fee","activation_fee","initial_term_discount","second_term_discount","third_term_discount","autopay_discount","paperless_billing_discount","combined_autopay_paperless_discount","net_monthly_price","gross_monthly_fee"],"description":"Detailed pricing breakdown for this product","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX].pricing","typeLabel":"object"}},"required":["id","sku","name","category","category_name","technology","position","description","select_type","download_speed","upload_speed","data_limit","channel_count","streaming_apps","is_required_to_checkout","is_contract_required","is_modem_router_included","is_bundle_qualifier","bundle_discounts","is_local_checkout","required_with_plans","included_with_plans","only_available_with_plans","initial_term_discount_months","second_term_discount_months","hum_rank","max_quantity","product_promo","info","pricing"],"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX].products","typeLabel":"object[]"}},"required":["category","category_name","category_description","products"],"uniqueKey":"data.items.[INDEX].product_catalog.items.[INDEX]","typeLabel":"object"},"description":"Array of product categories, each containing detailed product offerings from this provider","isRequired":true,"uniqueKey":"data.items.[INDEX].product_catalog","typeLabel":"object[]"}},"required":["provider_id","provider_name","provider_icon","provider_logo","telephone","url","button_label","min_plan_price","provider_promo","url_promo","offerings","product_catalog"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"meta":{"type":"object","properties":{"session_token":{"type":"string","example":"XqCmeTVgYXrbWrZFZEymkD","description":"The session token provided by the Hum API. Used to connect the response to the session in the client system.","isRequired":true,"uniqueKey":"meta.session_token","typeLabel":"string"},"session_status":{"type":"string","enum":["open","closed"],"example":"open","description":"The status of the session.","isRequired":true,"uniqueKey":"meta.session_status","typeLabel":"enum\u003cstring>"},"agent_status":{"type":"object","properties":{"geocoding":{"type":"string","enum":["pending","matched","multiple","failed"],"example":"matched","description":"The status of the geocoding agent. Pending: The agent has not yet processed the address. Matched: The agent has found a single match for the address. Multiple: The agent has found multiple matches for the address. Failed: The agent was unable to match the address.","uniqueKey":"meta.agent_status.geocoding","typeLabel":"enum\u003cstring>"},"internet":{"type":"string","enum":["pending","matched","failed"],"example":"matched","description":"The status of the Internet service availability agent. Pending: The agent has not yet processed the address. Matched: The agent has found Internet service providers for the address. Failed: The agent was unable to find Internet service providers for the address.","uniqueKey":"meta.agent_status.internet","typeLabel":"enum\u003cstring>"},"checkout":{"type":"string","enum":["pending"],"example":"pending","description":"The status of the checkout agent. Pending: The agent has not yet begun processing a checkout for service. ","uniqueKey":"meta.agent_status.checkout","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"meta.agent_status","typeLabel":"object"},"session_params":{"type":"object","description":"Address and campaign values after normalization. Coordinate values are serialized as strings in response metadata.","properties":{"street1":{"type":"string","example":"29090 Tiffany Dr E","isRequired":true,"uniqueKey":"meta.session_params.street1","typeLabel":"string"},"street2":{"oneOf":[{"type":"string","example":null,"isRequired":true,"uniqueKey":"meta.session_params.street2.oneOf.0","typeLabel":"string"},{"type":"null","example":null,"isRequired":true,"uniqueKey":"meta.session_params.street2.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.session_params.street2","typeLabel":"string | null"},"city":{"type":"string","example":"Southfield","isRequired":true,"uniqueKey":"meta.session_params.city","typeLabel":"string"},"state":{"type":"string","example":"MI","isRequired":true,"uniqueKey":"meta.session_params.state","typeLabel":"string"},"zip":{"type":"string","example":"48034","isRequired":true,"uniqueKey":"meta.session_params.zip","typeLabel":"string"},"latitude":{"oneOf":[{"type":"string","example":"42.50189","isRequired":true,"uniqueKey":"meta.session_params.latitude.oneOf.0","typeLabel":"string"},{"type":"null","example":"42.50189","isRequired":true,"uniqueKey":"meta.session_params.latitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.session_params.latitude","typeLabel":"string | null"},"longitude":{"oneOf":[{"type":"string","example":"-83.29528","isRequired":true,"uniqueKey":"meta.session_params.longitude.oneOf.0","typeLabel":"string"},{"type":"null","example":"-83.29528","isRequired":true,"uniqueKey":"meta.session_params.longitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.session_params.longitude","typeLabel":"string | null"},"campaign_id":{"oneOf":[{"type":"string","example":null,"isRequired":true,"uniqueKey":"meta.session_params.campaign_id.oneOf.0","typeLabel":"string"},{"type":"null","example":null,"isRequired":true,"uniqueKey":"meta.session_params.campaign_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"meta.session_params.campaign_id","typeLabel":"string | null"}},"required":["street1","street2","city","state","zip","latitude","longitude","campaign_id"],"isRequired":true,"uniqueKey":"meta.session_params","typeLabel":"object"},"service_address":{"type":"string","example":"1420 Washington Blvd, Detroit, MI 48201","description":"The complete service address as a single string.","isRequired":true,"uniqueKey":"meta.service_address","typeLabel":"string"},"mdu":{"type":"boolean","example":false,"description":"Whether the normalized service address is a multi-dwelling unit.","isRequired":true,"uniqueKey":"meta.mdu","typeLabel":"boolean"},"created_at":{"type":"string","description":"The timestamp when the session was created.","format":"date-time","example":"2024-09-20T23:13:31.179Z","isRequired":true,"uniqueKey":"meta.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","description":"The timestamp when the session was last updated.","format":"date-time","example":"2024-09-20T23:13:31.179Z","isRequired":true,"uniqueKey":"meta.updated_at","typeLabel":"string\u003cdate-time>"},"responded_at":{"type":"string","description":"The timestamp when the response was generated.","format":"date-time","example":"2024-09-20T23:13:31.179Z","isRequired":true,"uniqueKey":"meta.responded_at","typeLabel":"string\u003cdate-time>"},"hum_data_set":{"type":"string","pattern":"^\\d+$","example":"25041808","description":"The version of the Hum data set used to generate the response. This version may change as the data set is updated.","isRequired":true,"uniqueKey":"meta.hum_data_set","typeLabel":"string"}},"required":["session_token","session_status","session_params","service_address","mdu","agent_status","created_at","updated_at","responded_at","hum_data_set"],"description":"Session metadata, including normalized input values, formatted service address, session status, and the Hum data set used for the response.","isRequired":true,"uniqueKey":"meta","typeLabel":"object"},"qualify_status":{"type":"string","enum":["available","no_service","pending","failed","retry_later"],"example":"available","description":"The status of Internet service qualification for the address distinguishes a completed lookup from one that is not ready yet.\n\n**The answer is ready:**\n\n- `available`: Providers were found and are returned in `data`.\n- `no_service`: No providers serve this address. `data` is `[]`. You can act on this now, but Hum re-checks periodically, so re-validate it if you store it long term.\n\n**The answer is not ready, keep polling:**\n\n- `pending`: The lookup has not finished. `data` is `[]`. Retry by polling `GET /sessions/{token}/services/internet`.\n- `retry_later`: A transient upstream problem. `data` is `[]`. Retry by polling `GET /sessions/{token}/services/internet`.\n\n**Something went wrong:**\n\n- `failed`: The lookup errored for this address. `data` is `[]`.\n\nA `pending` lookup finishes as one of three values: `available` when providers are found, `no_service` when the lookup completes and finds none, or `failed` when it errors. `retry_later` arises separately and does not follow from `pending`. These three values should end the polling loop.\n","uniqueKey":"qualify_status","typeLabel":"enum\u003cstring>"}},"required":["message","request_status","data","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"successful_creation":{"title":"successful_creation","description":"Session created with multiple providers found","value":{"message":"Session created successfully.","request_status":"ok","data":[{"provider_id":"130317","provider_name":"Xfinity","provider_icon":null,"provider_logo":"https://cdn.example.com/providers/xfinity-logo.png","telephone":"+18332981431","url":"https://affiliate.example.com/xfinity?session=SESSION_TOKEN","min_plan_price":{"currency":"USD","amount_cents":4000},"button_label":"xfinity.com","provider_promo":{},"url_promo":{},"offerings":[{"technology":"Cable","max_download_speed":1200,"max_upload_speed":35}],"product_catalog":[{"category":"internet","category_name":"Internet Service","category_description":"High-speed internet access plans","products":[{"id":"a5d1cba2-10f8-4469-8296-9b1b02f83516","sku":"130317-INT-CBL-02","name":"300 Mbps","category":"internet","category_name":"Internet Service","technology":"cable","position":2,"select_type":"radio","description":"Great for everyday working, streaming, and learning. Price guaranteed for 60 months. No contract required.","download_speed":"300","upload_speed":"100","data_limit":"Unlimited","channel_count":0,"streaming_apps":[],"is_required_to_checkout":true,"is_contract_required":false,"is_modem_router_included":true,"is_bundle_qualifier":false,"bundle_discounts":{},"is_local_checkout":true,"required_with_plans":[],"included_with_plans":[],"only_available_with_plans":[],"initial_term_discount_months":60,"second_term_discount_months":null,"hum_rank":69,"max_quantity":1,"product_promo":{},"info":"5-year price lock guarantee","pricing":{"extra_data_fee":{"amount_cents":0,"currency":"USD"},"professional_installation_fee":{"amount_cents":5000,"currency":"USD"},"self_installation_fee":{"amount_cents":0,"currency":"USD"},"activation_fee":{"amount_cents":0,"currency":"USD"},"initial_term_discount":{"amount_cents":1500,"currency":"USD"},"second_term_discount":{"amount_cents":0,"currency":"USD"},"third_term_discount":{"amount_cents":0,"currency":"USD"},"autopay_discount":{"amount_cents":0,"currency":"USD"},"paperless_billing_discount":{"amount_cents":0,"currency":"USD"},"combined_autopay_paperless_discount":{"amount_cents":1000,"currency":"USD"},"net_monthly_price":{"amount_cents":5500,"currency":"USD"},"gross_monthly_fee":{"amount_cents":8000,"currency":"USD"}}}]},{"category":"internet_add_on","category_name":"Internet Add-On","category_description":"Additional internet services","products":[{"id":"d5ff2d5a-2145-4c5e-95c5-05ed78fc473a","sku":"130317-INT-AO-01","name":"Xfinity WiFi Gateway (modem + router)","category":"internet_add_on","category_name":"Internet Add-On","technology":"not_applicable","position":1,"select_type":"radio","description":"The most reliable WiFi with our best equipment. Free Advanced Security. Parental controls.","download_speed":null,"upload_speed":null,"data_limit":"0 GB","channel_count":0,"streaming_apps":[],"is_required_to_checkout":false,"is_contract_required":false,"is_modem_router_included":false,"is_bundle_qualifier":false,"bundle_discounts":{},"is_local_checkout":true,"required_with_plans":[],"included_with_plans":["130317-INT-CBL-01","130317-INT-CBL-02","130317-INT-CBL-03"],"only_available_with_plans":["130317-INT-CBL-01","130317-INT-CBL-02","130317-INT-CBL-03"],"initial_term_discount_months":0,"second_term_discount_months":null,"hum_rank":null,"max_quantity":1,"product_promo":{},"info":"","pricing":{"extra_data_fee":{"amount_cents":0,"currency":"USD"},"professional_installation_fee":{"amount_cents":0,"currency":"USD"},"self_installation_fee":{"amount_cents":0,"currency":"USD"},"activation_fee":{"amount_cents":0,"currency":"USD"},"initial_term_discount":{"amount_cents":0,"currency":"USD"},"second_term_discount":{"amount_cents":0,"currency":"USD"},"third_term_discount":{"amount_cents":0,"currency":"USD"},"autopay_discount":{"amount_cents":0,"currency":"USD"},"paperless_billing_discount":{"amount_cents":0,"currency":"USD"},"combined_autopay_paperless_discount":{"amount_cents":0,"currency":"USD"},"net_monthly_price":{"amount_cents":0,"currency":"USD"},"gross_monthly_fee":{"amount_cents":0,"currency":"USD"}}}]}]}],"meta":{"session_token":"SESSION_TOKEN_PLACEHOLDER","session_status":"open","session_params":{"street1":"29090 Tiffany Dr E","street2":"Apt 4B","city":"Southfield","state":"MI","zip":"48034","latitude":"42.50189","longitude":"-83.29528","campaign_id":null},"service_address":"29090 Tiffany Dr E Apt 4B, Southfield, MI 48034-4540","mdu":true,"agent_status":{"geocoding":"matched","internet":"matched","checkout":"pending"},"created_at":"2026-07-13T12:26:15.618-04:00","updated_at":"2026-07-13T12:26:15.618-04:00","responded_at":"2026-07-13T16:26:16.278Z","hum_data_set":"26011015"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d8a40cb3-5b68-4946-a1db-51df35ebfeb3":{"description":"Bad request. This includes an invalid session token. Use the HTTP status code, not `request_status`, to detect the error.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["warning","error"],"description":"Informational severity only; use the HTTP status code for control flow.","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","example":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","description":"Best-effort support reference for the request. Include the approximate request timestamp when reporting an error. A request logging failure can leave no matching API log row.\n","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"errors":{"type":"object","description":"Validation errors for session creation (e.g. missing/invalid address combination, street1, state, or zip).","properties":{"base":{"type":"array","items":{"type":"string","example":"Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)","uniqueKey":"errors.base.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.base","typeLabel":"string[]"},"street1":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.street1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.street1","typeLabel":"string[]"},"city":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.city.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.city","typeLabel":"string[]"},"state":{"type":"array","items":{"type":"string","example":"must be a valid state or US territory/commonwealth","uniqueKey":"errors.state.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.state","typeLabel":"string[]"},"zip":{"type":"array","items":{"type":"string","example":"must be in the form 12345 or 12345-1234","uniqueKey":"errors.zip.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.zip","typeLabel":"string[]"}},"uniqueKey":"errors","typeLabel":"object"}},"required":["message","request_status","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_parameters":{"title":"invalid_parameters","value":{"message":"Invalid parameters sent to session.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"}},"invalid_session_token":{"title":"invalid_session_token","value":{"message":"Invalid session token.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"}}},"exampleType":"examples"}},"exampleType":"examples"},"e1b95184-f92c-47d9-828e-5067322b8b3b":{"description":"Unauthorized. Use the HTTP status code, not `request_status`, to detect the error.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["warning","error"],"description":"Informational severity only; use the HTTP status code for control flow.","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","example":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","description":"Best-effort support reference for the request. Include the approximate request timestamp when reporting an error. A request logging failure can leave no matching API log row.\n","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"errors":{"type":"object","description":"Validation errors for session creation (e.g. missing/invalid address combination, street1, state, or zip).","properties":{"base":{"type":"array","items":{"type":"string","example":"Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)","uniqueKey":"errors.base.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.base","typeLabel":"string[]"},"street1":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.street1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.street1","typeLabel":"string[]"},"city":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.city.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.city","typeLabel":"string[]"},"state":{"type":"array","items":{"type":"string","example":"must be a valid state or US territory/commonwealth","uniqueKey":"errors.state.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.state","typeLabel":"string[]"},"zip":{"type":"array","items":{"type":"string","example":"must be in the form 12345 or 12345-1234","uniqueKey":"errors.zip.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.zip","typeLabel":"string[]"}},"uniqueKey":"errors","typeLabel":"object"}},"required":["message","request_status","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"Unauthorized access","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"},"examples":{"Example":{"title":"Example","value":{"message":"Unauthorized access","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"}}},"exampleType":"examples"}},"exampleType":"examples"},"85476758-79e4-4589-90d0-fd0f03342c8b":{"description":"The request was rejected because its content type is unsupported.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Request rejected","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","example":"The request was rejected due to security concerns","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","enum":[415],"example":415,"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cinteger>"}},"required":["error","message","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Request rejected","message":"The request was rejected due to security concerns","status":415}}},"exampleType":"generated"}},"exampleType":"generated"},"7228bd3f-0aac-4591-93db-d5d06f82eda1":{"description":"Session validation failed. Use the HTTP status code, not `request_status`, to detect the error.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["warning","error"],"description":"Informational severity only; use the HTTP status code for control flow.","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","example":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","description":"Best-effort support reference for the request. Include the approximate request timestamp when reporting an error. A request logging failure can leave no matching API log row.\n","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"errors":{"type":"object","description":"Validation errors for session creation (e.g. missing/invalid address combination, street1, state, or zip).","properties":{"base":{"type":"array","items":{"type":"string","example":"Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)","uniqueKey":"errors.base.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.base","typeLabel":"string[]"},"street1":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.street1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.street1","typeLabel":"string[]"},"city":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.city.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.city","typeLabel":"string[]"},"state":{"type":"array","items":{"type":"string","example":"must be a valid state or US territory/commonwealth","uniqueKey":"errors.state.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.state","typeLabel":"string[]"},"zip":{"type":"array","items":{"type":"string","example":"must be in the form 12345 or 12345-1234","uniqueKey":"errors.zip.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.zip","typeLabel":"string[]"}},"uniqueKey":"errors","typeLabel":"object"}},"required":["message","request_status","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"Session could not be created.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","errors":{"base":["Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)"]}},"examples":{"Example":{"title":"Example","value":{"message":"Session could not be created.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","errors":{"base":["Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"31051138-ddcc-41a8-a401-d226f3ae83ed":{"description":"Rate Limit Exceeded","headers":{"Retry-After":{"description":"Number of seconds to wait before retrying the request.","schema":{"type":"integer"},"example":60,"required":true}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["warning","error"],"description":"Informational severity only; use the HTTP status code for control flow.","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","example":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","description":"Best-effort support reference for the request. Include the approximate request timestamp when reporting an error. A request logging failure can leave no matching API log row.\n","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"errors":{"type":"object","description":"Validation errors for session creation (e.g. missing/invalid address combination, street1, state, or zip).","properties":{"base":{"type":"array","items":{"type":"string","example":"Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)","uniqueKey":"errors.base.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.base","typeLabel":"string[]"},"street1":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.street1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.street1","typeLabel":"string[]"},"city":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.city.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.city","typeLabel":"string[]"},"state":{"type":"array","items":{"type":"string","example":"must be a valid state or US territory/commonwealth","uniqueKey":"errors.state.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.state","typeLabel":"string[]"},"zip":{"type":"array","items":{"type":"string","example":"must be in the form 12345 or 12345-1234","uniqueKey":"errors.zip.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.zip","typeLabel":"string[]"}},"uniqueKey":"errors","typeLabel":"object"}},"required":["message","request_status","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"Rate limit exceeded. Please try again later.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"},"examples":{"Example":{"title":"Example","value":{"message":"Rate limit exceeded. Please try again later.","request_status":"warning","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"}}},"exampleType":"examples"}},"exampleType":"examples"},"f568016b-e2c3-4a6b-aba5-2fc6422b39af":{"description":"Unexpected internal error handled by an API controller.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"What happened in the most recent request.","description":"A message returned by the API. Includes a human-readable message about the status of the request.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_status":{"type":"string","enum":["warning","error"],"description":"Informational severity only; use the HTTP status code for control flow.","isRequired":true,"uniqueKey":"request_status","typeLabel":"enum\u003cstring>"},"request_id":{"type":"string","example":"3f1c3c07-785d-4c59-97dd-25cb38f670d7","description":"Best-effort support reference for the request. Include the approximate request timestamp when reporting an error. A request logging failure can leave no matching API log row.\n","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"errors":{"type":"object","description":"Validation errors for session creation (e.g. missing/invalid address combination, street1, state, or zip).","properties":{"base":{"type":"array","items":{"type":"string","example":"Provide either (street1 and zip), (street1, city, and state), or (street1, city, and zip)","uniqueKey":"errors.base.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.base","typeLabel":"string[]"},"street1":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.street1.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.street1","typeLabel":"string[]"},"city":{"type":"array","items":{"type":"string","example":"can't be blank","uniqueKey":"errors.city.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.city","typeLabel":"string[]"},"state":{"type":"array","items":{"type":"string","example":"must be a valid state or US territory/commonwealth","uniqueKey":"errors.state.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.state","typeLabel":"string[]"},"zip":{"type":"array","items":{"type":"string","example":"must be in the form 12345 or 12345-1234","uniqueKey":"errors.zip.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.zip","typeLabel":"string[]"}},"uniqueKey":"errors","typeLabel":"object"}},"required":["message","request_status","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"message":"Internal server error","request_status":"error","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"},"examples":{"Example":{"title":"Example","value":{"message":"Internal server error","request_status":"error","request_id":"3f1c3c07-785d-4c59-97dd-25cb38f670d7"}}},"exampleType":"examples"}},"exampleType":"examples"},"875601d8-5a40-4dbb-938b-429dffea0350":{"description":"Address validation is temporarily unavailable. This deliberate exception to the common error envelope preserves its body and `Retry-After` header.","headers":{"Retry-After":{"description":"Number of seconds to wait before retrying the request.","schema":{"type":"integer"},"example":60,"required":true}},"content":{"application/json":{"schema":{"type":"object","properties":{"address_validation_unavailable":{"type":"boolean","enum":[true],"example":true,"isRequired":true,"uniqueKey":"address_validation_unavailable","typeLabel":"enum\u003cboolean>"}},"required":["address_validation_unavailable"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"address_validation_unavailable":true}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"28d3d7ae-b013-4cdf-b136-3deb02a6946b":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token authentication using API tokens.\nInclude the token in the Authorization header as: `Authorization: Bearer \u003ctoken>`\n\nObtain tokens from your Hum representative or contact support@letshum.com. There is no self-serve API key dashboard.\n","scopes":[]}}},"servers":{"a0fb7d8d-c46d-46cf-b53e-90b496207a53":{"url":"https://api-sandbox.letshum.com","description":"Sandbox environment"},"50a481b3-b8e5-4d61-b045-e37902a020f0":{"url":"https://api.letshum.com","description":"Production environment"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer token authentication using API tokens.\nInclude the token in the Authorization header as: `Authorization: Bearer \u003ctoken>`\n\nObtain tokens from your Hum representative or contact support@letshum.com. There is no self-serve API key dashboard.\n","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token authentication using API tokens.\nInclude the token in the Authorization header as: `Authorization: Bearer \u003ctoken>`\n\nObtain tokens from your Hum representative or contact support@letshum.com. There is no self-serve API key dashboard.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"swagger.yaml"},"subdomain":"hum","siteName":"Hum Documentation","title":"Create New Session - Hum Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-13T23:37:37.535Z","originalFileLocation":"api-reference/sessions/create-new-session.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=\"system\"}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=\"Creates a new session for processing a service address. This is typically the first endpoint called when starting a new address lookup flow. ## Request Flow 1. Submit service address components 2. Receive a session token 3. Use session token in the URL path for subsequent requests ## Processing During session creation, Hum: - Validates and normalizes the address - Geocodes the location - Identifies available service providers - Gathers plan and pricing information ## Response Handling - 201: Session created successfully with available provider results in data - 422: Invalid address components, check error details - 429: Rate limit exceeded; retry after the delay in Retry-After - 503: Address validation is temporarily unavailable; retry after the delay in Retry-After ## Important Notes - The session token is part of the URL path for all requests after creation - The session token is required for all subsequent requests - Sessions remain open until they are closed with DELETE - Rate limits apply to all requests ## Example Usage Provide address using one of: (street1 and zip), (street1, city, and state), or (street1, city, and zip). State is optional when zip is present. json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; } Or with city and state, or street+city+zip (no state): json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;city\u0026quot;: \u0026quot;Southfield\u0026quot;, \u0026quot;state\u0026quot;: \u0026quot;MI\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; }\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hum Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_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/hum/MQJGe1qKygFPeCex/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create New Session - Hum Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new session for processing a service address. This is typically the first endpoint called when starting a new address lookup flow. ## Request Flow 1. Submit service address components 2. Receive a session token 3. Use session token in the URL path for subsequent requests ## Processing During session creation, Hum: - Validates and normalizes the address - Geocodes the location - Identifies available service providers - Gathers plan and pricing information ## Response Handling - 201: Session created successfully with available provider results in data - 422: Invalid address components, check error details - 429: Rate limit exceeded; retry after the delay in Retry-After - 503: Address validation is temporarily unavailable; retry after the delay in Retry-After ## Important Notes - The session token is part of the URL path for all requests after creation - The session token is required for all subsequent requests - Sessions remain open until they are closed with DELETE - Rate limits apply to all requests ## Example Usage Provide address using one of: (street1 and zip), (street1, city, and state), or (street1, city, and zip). State is optional when zip is present. json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; } Or with city and state, or street+city+zip (no state): json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;city\u0026quot;: \u0026quot;Southfield\u0026quot;, \u0026quot;state\u0026quot;: \u0026quot;MI\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; }\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hum Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.letshum.com/api-reference/sessions/create-new-session\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hum.mintlify.app/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Create+New+Session\u0026amp;description=Creates+a+new+session+for+processing+a+service+address.+This+is+typically+the+first+endpoint+called+when+starting+%0Aa+new+address+lookup+flow.%0A%0A%23%23+Request+Flow%0A1\u0026amp;theme=681961f9c74f9e589caf8b82\u0026amp;signature=660e2619165c19cac5e43a489c649180959ba4e9bec3c2f099263748078d18e1\">\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=\"Create New Session - Hum Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new session for processing a service address. This is typically the first endpoint called when starting a new address lookup flow. ## Request Flow 1. Submit service address components 2. Receive a session token 3. Use session token in the URL path for subsequent requests ## Processing During session creation, Hum: - Validates and normalizes the address - Geocodes the location - Identifies available service providers - Gathers plan and pricing information ## Response Handling - 201: Session created successfully with available provider results in data - 422: Invalid address components, check error details - 429: Rate limit exceeded; retry after the delay in Retry-After - 503: Address validation is temporarily unavailable; retry after the delay in Retry-After ## Important Notes - The session token is part of the URL path for all requests after creation - The session token is required for all subsequent requests - Sessions remain open until they are closed with DELETE - Rate limits apply to all requests ## Example Usage Provide address using one of: (street1 and zip), (street1, city, and state), or (street1, city, and zip). State is optional when zip is present. json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; } Or with city and state, or street+city+zip (no state): json POST /sessions { \u0026quot;street1\u0026quot;: \u0026quot;29090 Tiffany Drive E\u0026quot;, \u0026quot;city\u0026quot;: \u0026quot;Southfield\u0026quot;, \u0026quot;state\u0026quot;: \u0026quot;MI\u0026quot;, \u0026quot;zip\u0026quot;: \u0026quot;48034\u0026quot; }\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hum.mintlify.app/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Create+New+Session\u0026amp;description=Creates+a+new+session+for+processing+a+service+address.+This+is+typically+the+first+endpoint+called+when+starting+%0Aa+new+address+lookup+flow.%0A%0A%23%23+Request+Flow%0A1\u0026amp;theme=681961f9c74f9e589caf8b82\u0026amp;signature=660e2619165c19cac5e43a489c649180959ba4e9bec3c2f099263748078d18e1\">\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/hum/MQJGe1qKygFPeCex/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hum Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2a77fa\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.letshum.com/api-reference/sessions/create-new-session\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/sessions/create-new-session.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.letshum.com/#organization\",\"name\":\"Hum Documentation\",\"url\":\"https://docs.letshum.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hum/EGVZNDogcsGNqYtL/logo/hum.svg?fit=max\u0026auto=format\u0026n=EGVZNDogcsGNqYtL\u0026q=85\u0026s=8bd29d065c4bb046f4c7c7f49da36bbb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.letshum.com#website\",\"name\":\"Hum Documentation\",\"url\":\"https://docs.letshum.com\",\"publisher\":{\"@id\":\"https://docs.letshum.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.letshum.com/api-reference/sessions/create-new-session#webpage\",\"url\":\"https://docs.letshum.com/api-reference/sessions/create-new-session\",\"name\":\"Create New Session\",\"description\":\"Creates a new session for processing a service address. This is typically the first endpoint called when starting a new address lookup flow. ## Request Flow 1. Submit service address components 2. Receive a session token 3. Use session token in the URL path for subsequent requests ## Processing During session creation, Hum: - Validates and normalizes the address - Geocodes the location - Identifies available service providers - Gathers plan and pricing information ## Response Handling - 201: Session created successfully with available provider results in data - 422: Invalid address components, check error details - 429: Rate limit exceeded; retry after the delay in Retry-After - 503: Address validation is temporarily unavailable; retry after the delay in Retry-After ## Important Notes - The session token is part of the URL path for all requests after creation - The session token is required for all subsequent requests - Sessions remain open until they are closed with DELETE - Rate limits apply to all requests ## Example Usage Provide address using one of: (street1 and zip), (street1, city, and state), or (street1, city, and zip). State is optional when zip is present. json POST /sessions { \\\"street1\\\": \\\"29090 Tiffany Drive E\\\", \\\"zip\\\": \\\"48034\\\" } Or with city and state, or street+city+zip (no state): json POST /sessions { \\\"street1\\\": \\\"29090 Tiffany Drive E\\\", \\\"city\\\": \\\"Southfield\\\", \\\"state\\\": \\\"MI\\\", \\\"zip\\\": \\\"48034\\\" }\",\"dateModified\":\"2026-08-13T23:37:37.535Z\",\"isPartOf\":{\"@id\":\"https://docs.letshum.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.letshum.com/api-reference/sessions/create-new-session#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.letshum.com/api-reference/sessions/create-new-session#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hum Documentation\",\"item\":\"https://docs.letshum.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create New Session\",\"item\":\"https://docs.letshum.com/api-reference/sessions/create-new-session\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.letshum.com/api-reference/sessions/create-new-session#apireference\",\"headline\":\"Create New Session\",\"name\":\"Create New Session\",\"description\":\"Creates a new session for processing a service address. This is typically the first endpoint called when starting a new address lookup flow. ## Request Flow 1. Submit service address components 2. Receive a session token 3. Use session token in the URL path for subsequent requests ## Processing During session creation, Hum: - Validates and normalizes the address - Geocodes the location - Identifies available service providers - Gathers plan and pricing information ## Response Handling - 201: Session created successfully with available provider results in data - 422: Invalid address components, check error details - 429: Rate limit exceeded; retry after the delay in Retry-After - 503: Address validation is temporarily unavailable; retry after the delay in Retry-After ## Important Notes - The session token is part of the URL path for all requests after creation - The session token is required for all subsequent requests - Sessions remain open until they are closed with DELETE - Rate limits apply to all requests ## Example Usage Provide address using one of: (street1 and zip), (street1, city, and state), or (street1, city, and zip). State is optional when zip is present. json POST /sessions { \\\"street1\\\": \\\"29090 Tiffany Drive E\\\", \\\"zip\\\": \\\"48034\\\" } Or with city and state, or street+city+zip (no state): json POST /sessions { \\\"street1\\\": \\\"29090 Tiffany Drive E\\\", \\\"city\\\": \\\"Southfield\\\", \\\"state\\\": \\\"MI\\\", \\\"zip\\\": \\\"48034\\\" }\",\"url\":\"https://docs.letshum.com/api-reference/sessions/create-new-session\",\"mainEntityOfPage\":{\"@id\":\"https://docs.letshum.com/api-reference/sessions/create-new-session#webpage\"},\"dateModified\":\"2026-08-13T23:37:37.535Z\",\"publisher\":{\"@id\":\"https://docs.letshum.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.letshum.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hum Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hum Documentation","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://letshum.com"},{"anchor":"Support","icon":"envelope","href":"mailto:support@letshum.com"},{"anchor":"Operational Status","icon":"chart-simple","href":"https://status.letshum.com"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]},{"tab":"API Reference","groups":[{"group":"Sessions","pages":[{"title":"Create New Session","deprecated":null,"version":null,"openapi":"/swagger.yaml post /sessions","href":"/api-reference/sessions/create-new-session"},{"title":"Get Session Status","description":"Retrieves an open session. Provider results are usually returned by `POST /sessions`, but when `qualify_status` is `pending` or `retry_later`, poll `GET /sessions/{token}/services/internet` until the status resolves.\n\n## Status Codes\n- 200: Session is open\n- 400: Session token is invalid\n- 410: Session is closed\n\n## Response Data\n- `data.session_token`: The session token only\n- `meta.session_params`: Normalized address values\n- `meta.service_address`: Formatted service address\n- `meta.agent_status`: Agent status values\n\n## Important Notes\n- The session token is part of the URL path for all requests after creation\n- Sessions remain open until they are closed with DELETE\n\n## Example Response\n```json\n{\n \"message\": \"Session agents have successfully matched the service address. Please proceed.\",\n \"request_status\": \"ok\",\n \"data\": {\n \"session_token\": \"SESSION_TOKEN_PLACEHOLDER\"\n },\n \"meta\": {\n \"session_token\": \"SESSION_TOKEN_PLACEHOLDER\",\n \"session_status\": \"open\",\n \"session_params\": {\n \"street1\": \"29090 Tiffany Dr E\",\n \"street2\": \"Apt 4B\",\n \"city\": \"Southfield\",\n \"state\": \"MI\",\n \"zip\": \"48034\",\n \"latitude\": \"42.50189\",\n \"longitude\": \"-83.29528\",\n \"campaign_id\": null\n },\n \"service_address\": \"29090 Tiffany Dr E Apt 4B, Southfield, MI 48034-4540\",\n \"mdu\": true,\n \"agent_status\": {\n \"geocoding\": \"matched\",\n \"internet\": \"matched\",\n \"checkout\": \"pending\"\n },\n \"created_at\": \"2026-07-13T12:26:15.618-04:00\",\n \"updated_at\": \"2026-07-13T12:26:15.618-04:00\",\n \"responded_at\": \"2026-07-13T16:26:16.900Z\",\n \"hum_data_set\": \"26011015\"\n }\n}\n```\n","deprecated":null,"version":null,"openapi":"/swagger.yaml get /sessions/{token}","href":"/api-reference/sessions/get-session-status"},{"title":"Close Session","deprecated":null,"version":null,"openapi":"/swagger.yaml delete /sessions/{token}","href":"/api-reference/sessions/close-session"}]},{"group":"Service Availability","pages":[{"title":"Get Internet Service Availability","deprecated":null,"version":null,"openapi":"/swagger.yaml get /sessions/{token}/services/internet","href":"/api-reference/service-availability/get-internet-service-availability"}]},{"group":"Health Check","pages":[{"title":"API Health Check","deprecated":null,"version":null,"openapi":"/swagger.yaml get /ping","href":"/api-reference/health-check/api-health-check"}]},{"group":"Informational","pages":[{"title":"Get FCC Service Providers","deprecated":null,"version":null,"openapi":"/swagger.yaml get /service_providers","href":"/api-reference/informational/get-fcc-service-providers"}]},{"group":"Analytics","pages":[{"title":"List Sessions","deprecated":null,"version":null,"openapi":"/swagger.yaml get /analytics/sessions","href":"/api-reference/analytics/list-sessions"},{"title":"Get Session Detail","deprecated":null,"version":null,"openapi":"/swagger.yaml get /analytics/sessions/{id}","href":"/api-reference/analytics/get-session-detail"}]}]}]},"title":"Create New Session - Hum Documentation","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}