Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.
GET
/
properties
Get Properties By Id
curl --request GET \
--url https://api.shovels.ai/v2/properties \
--header 'X-API-Key: <api-key>'
Top-level count object, not an integer: {"value": 970, "relation": "eq"}. "eq" means an exact count up to 10,000. "gte" means at least 10,000 matches, with value set to 10,000. Counted only when requested on the first page without a cursor. null when not requested, on later pages, or when the count query times out.
Row-weighted trust summary; present only on absence-class responses.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Shovels Documentation","colors":{"primary":"#01654D","light":"#E8BD51","dark":"#01654D"},"logo":{"light":"https://mintcdn.com/shovelsai/RpZdSdGGx61eI0yq/assets/shovels-logo.png?fit=max\u0026auto=format\u0026n=RpZdSdGGx61eI0yq\u0026q=85\u0026s=4580f7cd0725b33ba31367d40fda3bbf","dark":"https://mintcdn.com/shovelsai/1PwAyN7q-VPDJL6r/assets/shovels-logo-dark.png?fit=max\u0026auto=format\u0026n=1PwAyN7q-VPDJL6r\u0026q=85\u0026s=48cea9b3276127273eefe9d0d6d9b0b8","href":"https://www.shovels.ai"},"favicon":"https://mintcdn.com/shovelsai/RpZdSdGGx61eI0yq/assets/favicon.png?fit=max\u0026auto=format\u0026n=RpZdSdGGx61eI0yq\u0026q=85\u0026s=fd9ec8e38b5dd0ef58cf2d43fdc71ec3","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","java","go","ruby","php"]},"mdx":{"server":"https://api.shovels.ai/v2"}},"background":{"color":{"light":"#fcfbf8","dark":"#101727"}},"navbar":{"links":[{"href":"mailto:support@shovels.ai","label":"Contact Support"}],"primary":{"type":"button","label":"Free Trial","href":"https://app.shovels.ai/login?mode=register"}},"footer":{"socials":{"discord":"https://discord.gg/Nypja3cKDx","github":"https://github.com/shovelsai","linkedin":"https://linkedin.com/company/shovels"}},"seo":{"metatags":{"og:site_name":"Shovels Documentation","og:type":"website","og:image":"https://docs.shovels.ai/assets/shovels-logo.png","twitter:card":"summary_large_image","twitter:site":"@shovelsai"},"indexing":"navigable"},"fonts":{"heading":{"family":"Poppins"},"body":{"family":"IBM Plex Sans"}},"styling":{"codeblocks":{"theme":{"light":"css-variables","dark":"css-variables"}},"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Data Dictionary","icon":"book-open-cover","href":"https://www.shovels.ai/data-dictionary"},{"anchor":"Coverage Dashboard","icon":"map-pin","href":"https://www.shovels.ai/coverage"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/Nypja3cKDx"},{"anchor":"Blog","icon":"newspaper","href":"https://www.shovels.ai/blog/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shovelsai","hasAudioNarration":false,"actualSubdomain":"shovelsai","customDomains":["docs.shovels.ai"],"gitSource":{"type":"github","owner":"shovelsai","repo":"shovels-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea230fc4fda768c27b6da4","collectionId":"f6c67a76-3d7c-4c01-a39c-2733ea4aa712","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea230fc4fda768c27b6da4"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea29d548425b5f57ad54d8","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Knowledge Base","count":202},{"language":"default","tag":"API Reference","count":35},{"language":"default","tag":"Endpoints","count":34},{"language":"default","tag":"API Questions","count":30},{"language":"default","tag":"Data \u0026 Coverage","count":28},{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"Contractors","count":15},{"language":"default","tag":"Permits","count":12},{"language":"default","tag":"API Basics","count":10},{"language":"default","tag":"Shovels CLI","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iIq129k.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1isq129k.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iAq129k.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgtIU.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgtIU.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgtIU.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgtIU.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgtIU.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgtIU.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgtIU.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--shovels-ink:#101727;--shovels-ink-body:#1e293e;--shovels-ink-secondary:#6b695c;--shovels-label:#837e6c;--shovels-primary:#01654d;--shovels-emerald-dark-rgb:16 185 129;--shovels-emerald-dark:rgb(var(--shovels-emerald-dark-rgb));--shovels-on-emerald:#0e1420;--shovels-surface:#ffffff;--shovels-panel:#f9f7f1;--shovels-subtle:#f0ecdf;--shovels-rule:#e2dcc9;--shovels-rule-strong:#dad3bd;--shovels-dark-panel:#161d2c;--shovels-dark-subtle:#1a2338;--shovels-dark-rule:#2a3550;--shovels-dark-rule-strong:#33415e;--shovels-dark-ink:#d6d0c1;--shovels-dark-ink-secondary:#948d73;--shovels-dark-success-rgb:110 231 183;--shovels-dark-warning-rgb:233 190 81;--shovels-dark-error-rgb:217 135 98;--shovels-success-fill:#e6f2ee;--shovels-success-line:#c6d7ce;--shovels-success-ink:#014d3a;--shovels-warning-fill:#fdfaf0;--shovels-warning-line:#ecd9a4;--shovels-warning-ink:#7a5b18;--shovels-error-fill:#fdf2ee;--shovels-error-line:#a63d27;--shovels-error-ink:#8a3b28;--shovels-structure:Poppins, ui-sans-serif, system-ui, sans-serif;--shovels-identifier:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;--shovels-lift:0 1px 1px rgba(84, 72, 40, 0.04)}:root:not(.dark){--gray-50:250 249 244;--gray-100:244 241 231;--gray-200:233 228 212;--gray-300:216 209 188;--gray-400:148 142 122;--gray-500:121 116 95;--gray-600:107 105 92;--gray-700:30 41 62;--gray-800:23 32 50;--gray-900:16 23 39;--gray-950:10 15 26;--mint-foreground:var(--shovels-ink);--mint-background:transparent;--mint-token-keyword:var(--shovels-primary);--mint-token-function:var(--shovels-primary);--mint-token-string:#874d33;--mint-token-string-expression:#874d33;--mint-token-constant:#765817;--mint-token-parameter:#55622f;--mint-token-punctuation:#6b6652;--mint-token-comment:#6c6753;--mint-token-link:var(--shovels-primary)}#content-area table th,#sidebar .sidebar-title,.eyebrow{font-family:var(--shovels-structure);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;line-height:1.4}:root:not(.dark) .eyebrow{color:var(--shovels-primary)}:root:not(.dark) #content-area table th,:root:not(.dark) #sidebar .sidebar-title{color:var(--shovels-ink-secondary)}:root.dark #content-area table th{color:var(--shovels-dark-ink-secondary)}#content-area .prose:not(.text-sm){font-size:15px;line-height:1.65}#content-area h1,#content-area h2,#content-area h3,#content-area h4{font-weight:600;letter-spacing:-.02em}:root{--font-paper-mono:var(--shovels-identifier)}code,kbd,pre,samp{font-family:var(--shovels-identifier)}:root:not(.dark) #content-area :not(pre)>code{color:var(--shovels-ink);background:var(--shovels-subtle);border:1px solid var(--shovels-rule)}:root.dark #content-area :not(pre)>code{color:var(--shovels-dark-ink);background:var(--shovels-dark-subtle);border:1px solid var(--shovels-dark-rule)}:root.dark{--mint-foreground:var(--shovels-dark-ink);--mint-background:transparent;--mint-token-keyword:var(--shovels-emerald-dark);--mint-token-function:var(--shovels-emerald-dark);--mint-token-string:#d98762;--mint-token-string-expression:#d98762;--mint-token-constant:#ba974a;--mint-token-parameter:#90a653;--mint-token-punctuation:var(--shovels-dark-ink-secondary);--mint-token-comment:#8c8670;--mint-token-link:var(--shovels-emerald-dark)}span[style*=\"--mint-token-function\"],span[style*=\"--mint-token-keyword\"]{font-weight:500;--shiki-dark-font-weight:500}#sidebar .sidebar-group a{font-family:var(--shovels-structure)}:root:not(.dark) #assistant-entry,:root:not(.dark) #search-bar-entry{background:var(--shovels-subtle);border:1px solid var(--shovels-rule)}:root:not(.dark) #assistant-entry *,:root:not(.dark) #search-bar-entry *{color:var(--shovels-ink-secondary)}:root.dark #assistant-entry,:root.dark #search-bar-entry{background:var(--shovels-dark-subtle);border:1px solid var(--shovels-dark-rule)}:root.dark #assistant-entry *,:root.dark #search-bar-entry *{color:var(--shovels-dark-ink-secondary)}#content-area .callout,#content-area .card{border-radius:10px}:root:not(.dark) #content-area .card{background:var(--shovels-surface);border-color:var(--shovels-rule);box-shadow:var(--shovels-lift)}#content-area table td{font-size:13px}#content-area table th{padding-top:8px;padding-bottom:8px;vertical-align:middle}#content-area details table td{overflow-wrap:anywhere}#content-area details table td:first-child{font-family:var(--shovels-identifier);font-weight:500}:root:not(.dark) #content-area table th{background:var(--shovels-subtle);border-bottom:1px solid var(--shovels-rule-strong)}:root:not(.dark) #content-area table td{border-bottom:1px solid var(--shovels-rule)}:root.dark #content-area table th{background:var(--shovels-dark-subtle);border-bottom:1px solid var(--shovels-dark-rule-strong)}:root.dark #content-area table td{border-bottom:1px solid var(--shovels-dark-rule)}:root:not(.dark) #content-area .callout[class*=bg-neutral-]{background:var(--shovels-panel);border-color:var(--shovels-rule)}:root:not(.dark) #content-area .callout[class*=bg-neutral-] svg{color:var(--shovels-label)}:root:not(.dark) #content-area .callout[class*=bg-blue-]{background:var(--shovels-subtle);border-color:var(--shovels-rule-strong)}:root:not(.dark) #content-area .callout[class*=bg-blue-] svg{color:var(--shovels-ink-secondary)}:root:not(.dark) #content-area .callout[class*=bg-green-]{background:var(--shovels-success-fill);border-color:var(--shovels-success-line)}:root:not(.dark) #content-area .callout[class*=bg-green-] svg{color:var(--shovels-primary)}:root:not(.dark) #content-area .callout[class*=bg-yellow-]{background:var(--shovels-warning-fill);border-color:var(--shovels-warning-line)}:root:not(.dark) #content-area .callout[class*=bg-yellow-] svg{color:var(--shovels-warning-ink)}:root:not(.dark) #content-area .callout[class*=bg-red-]{background:var(--shovels-error-fill);border-color:var(--shovels-error-line)}:root:not(.dark) #content-area .callout[class*=bg-red-] svg{color:var(--shovels-error-line)}:root:not(.dark) #content-area .callout[class*=bg-blue-] .prose,:root:not(.dark) #content-area .callout[class*=bg-neutral-] .prose{color:var(--shovels-ink-body)}:root:not(.dark) #content-area .callout[class*=bg-green-] .prose{color:var(--shovels-success-ink)}:root:not(.dark) #content-area .callout[class*=bg-yellow-] .prose{color:var(--shovels-warning-ink)}:root:not(.dark) #content-area .callout[class*=bg-red-] .prose{color:var(--shovels-error-ink)}:root.dark #content-area .callout[class*=bg-neutral-]{background:var(--shovels-dark-panel);border-color:var(--shovels-dark-rule)}:root.dark #content-area .callout[class*=bg-blue-] svg,:root.dark #content-area .callout[class*=bg-neutral-] svg{color:var(--shovels-dark-ink-secondary)}:root.dark #content-area .callout[class*=bg-blue-]{background:var(--shovels-dark-subtle);border-color:var(--shovels-dark-rule-strong)}:root.dark #content-area .callout[class*=bg-green-]{background:rgb(var(--shovels-dark-success-rgb)/.12);border-color:rgb(var(--shovels-dark-success-rgb)/.3)}:root.dark #content-area .callout[class*=bg-green-] svg{color:rgb(var(--shovels-dark-success-rgb))}:root.dark #content-area .callout[class*=bg-yellow-]{background:rgb(var(--shovels-dark-warning-rgb)/.12);border-color:rgb(var(--shovels-dark-warning-rgb)/.3)}:root.dark #content-area .callout[class*=bg-yellow-] svg{color:rgb(var(--shovels-dark-warning-rgb))}:root.dark #content-area .callout[class*=bg-red-]{background:rgb(var(--shovels-dark-error-rgb)/.12);border-color:rgb(var(--shovels-dark-error-rgb)/.3)}:root.dark #content-area .callout[class*=bg-red-] svg{color:rgb(var(--shovels-dark-error-rgb))}:root.dark #content-area .callout[class*=bg-blue-] .prose,:root.dark #content-area .callout[class*=bg-neutral-] .prose{color:var(--shovels-dark-ink)}:root.dark #content-area .callout[class*=bg-green-] .prose{color:rgb(var(--shovels-dark-success-rgb))}:root.dark #content-area .callout[class*=bg-yellow-] .prose{color:rgb(var(--shovels-dark-warning-rgb))}:root.dark #content-area .callout[class*=bg-red-] .prose{color:rgb(var(--shovels-dark-error-rgb))}:root:not(.dark){--accordion-background-color:var(--shovels-panel);--accordion-background-hover:var(--shovels-subtle);--accordion-icon-color:var(--shovels-label)}:root:not(.dark) .method-nav-pill [class*=\"2AB673\"],:root:not(.dark) .tryit-button[class*=\"2AB673\"]{background-color:var(--shovels-primary)}:root:not(.dark) .method-nav-pill [class*=bg-green-],:root:not(.dark) .method-pill[class*=bg-green-]{background-color:var(--shovels-success-fill);color:var(--shovels-primary)}:root.dark .method-nav-pill [class*=\"2AB673\"],:root.dark .tryit-button[class*=\"2AB673\"]{background-color:var(--shovels-emerald-dark);color:var(--shovels-on-emerald)}:root.dark .method-nav-pill [class*=bg-green-],:root.dark .method-pill[class*=bg-green-]{background-color:rgb(var(--shovels-emerald-dark-rgb)/.18);color:var(--shovels-emerald-dark)}:root.dark [class*=bg-primary-dark]{background-color:var(--shovels-emerald-dark)}:root.dark #topbar-cta-button,:root.dark #topbar-cta-button *{color:var(--shovels-on-emerald)}:root:not(.dark) #content-area [class*=bg-red-100]{background-color:var(--shovels-warning-fill);color:var(--shovels-warning-ink);box-shadow:inset 0 0 0 1px var(--shovels-warning-line)}:root.dark #content-area [class*=bg-red-100]{background-color:rgb(var(--shovels-dark-warning-rgb)/.12);color:rgb(var(--shovels-dark-warning-rgb));box-shadow:inset 0 0 0 1px rgb(var(--shovels-dark-warning-rgb)/.3)}"}],"page":{"pagePath":"api-reference/properties/get-properties-by-id","slug":"/api-reference/properties/get-properties-by-id","pageMetadata":{"title":"Get Properties By Id","description":"**Beta.** Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 `id` query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /properties","href":"/api-reference/properties/get-properties-by-id","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Beta.\"\n }), \" Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 \", _jsx(_components.code, {\n children: \"id\"\n }), \" query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=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":{"codeStyling":{"theme":{"light":"css-variables","dark":"css-variables"}},"config":{},"pageMetadata":{"title":"Get Properties By Id","description":"**Beta.** Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 `id` query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /properties","href":"/api-reference/properties/get-properties-by-id","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Properties","Properties"],"summary":"Get Properties By Id","description":"**Beta.** Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 `id` query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.","operationId":"get_properties_by_id_properties_get","security":["70210f23-b8d4-4ef6-a112-22eeba2b3afe"],"parameters":["f1548ff8-1e19-4c66-ad36-3f2e9bdb25a8"],"responses":{"200":"908a9aa3-e261-4952-9808-9eb687de854c","422":"cf9749f9-c815-4c54-bac6-8a7a8963a1dd"},"method":"get","type":"path","servers":["370fdb2b-7744-45ce-9b90-cd3a263353be"],"path":"/properties","baseUrlOptions":["https://api.shovels.ai/v2"],"title":"Get Properties By Id","codeSamples":[],"requestExampleLanguages":["bash","python","java","go","ruby","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f1548ff8-1e19-4c66-ad36-3f2e9bdb25a8":{"name":"id","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"title":"Property ID","description":"Address geolocation id. Up to 50 `id` params per request.","isRequired":true,"uniqueKey":"","typeLabel":"string[]"},"description":"Address geolocation id. Up to 50 `id` params per request."}},"responses":{"908a9aa3-e261-4952-9808-9eb687de854c":{"description":"The requested properties, in request order.","content":{"application/json":{"schema":{"properties":{"items":{"items":{"properties":{"id":{"type":"string","title":"Id","description":"The base64 address handle; the property's public id.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"street_no":{"oneOf":[{"type":"string","title":"Street No","description":"Street number of the address.","uniqueKey":"\\items.items.[INDEX].street_no.oneOf.0","typeLabel":"string"},{"type":"null","title":"Street No","description":"Street number of the address.","uniqueKey":"\\items.items.[INDEX].street_no.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].street_no","typeLabel":"string | null"},"street":{"oneOf":[{"type":"string","title":"Street","description":"Street name of the address.","uniqueKey":"\\items.items.[INDEX].street.oneOf.0","typeLabel":"string"},{"type":"null","title":"Street","description":"Street name of the address.","uniqueKey":"\\items.items.[INDEX].street.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].street","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","title":"City","description":"City of the address.","uniqueKey":"\\items.items.[INDEX].city.oneOf.0","typeLabel":"string"},{"type":"null","title":"City","description":"City of the address.","uniqueKey":"\\items.items.[INDEX].city.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].city","typeLabel":"string | null"},"city_id":{"oneOf":[{"type":"string","title":"City Id","description":"Base64 city handle.","uniqueKey":"\\items.items.[INDEX].city_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"City Id","description":"Base64 city handle.","uniqueKey":"\\items.items.[INDEX].city_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].city_id","typeLabel":"string | null"},"zip_code":{"oneOf":[{"type":"string","title":"Zip Code","description":"ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].zip_code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Zip Code","description":"ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].zip_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].zip_code","typeLabel":"string | null"},"zip_code_ext":{"oneOf":[{"type":"string","title":"Zip Code Ext","description":"ZIP+4 extension of the address.","uniqueKey":"\\items.items.[INDEX].zip_code_ext.oneOf.0","typeLabel":"string"},{"type":"null","title":"Zip Code Ext","description":"ZIP+4 extension of the address.","uniqueKey":"\\items.items.[INDEX].zip_code_ext.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].zip_code_ext","typeLabel":"string | null"},"county":{"oneOf":[{"type":"string","title":"County","description":"County of the address.","uniqueKey":"\\items.items.[INDEX].county.oneOf.0","typeLabel":"string"},{"type":"null","title":"County","description":"County of the address.","uniqueKey":"\\items.items.[INDEX].county.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].county","typeLabel":"string | null"},"county_id":{"oneOf":[{"type":"string","title":"County Id","description":"Base64 county handle.","uniqueKey":"\\items.items.[INDEX].county_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"County Id","description":"Base64 county handle.","uniqueKey":"\\items.items.[INDEX].county_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].county_id","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","title":"State","description":"State of the address.","uniqueKey":"\\items.items.[INDEX].state.oneOf.0","typeLabel":"string"},{"type":"null","title":"State","description":"State of the address.","uniqueKey":"\\items.items.[INDEX].state.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].state","typeLabel":"string | null"},"lat":{"oneOf":[{"type":"number","title":"Lat","description":"Latitude of the address.","uniqueKey":"\\items.items.[INDEX].lat.oneOf.0","typeLabel":"number"},{"type":"null","title":"Lat","description":"Latitude of the address.","uniqueKey":"\\items.items.[INDEX].lat.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].lat","typeLabel":"number | null"},"long":{"oneOf":[{"type":"number","title":"Long","description":"Longitude of the address.","uniqueKey":"\\items.items.[INDEX].long.oneOf.0","typeLabel":"number"},{"type":"null","title":"Long","description":"Longitude of the address.","uniqueKey":"\\items.items.[INDEX].long.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].long","typeLabel":"number | null"},"permit_count":{"type":"integer","title":"Permit Count","description":"Count of permits linked to the address.","default":0,"uniqueKey":"\\items.items.[INDEX].permit_count","typeLabel":"integer"},"untagged_permit_count":{"type":"integer","title":"Untagged Permit Count","description":"Count of the address's permits carrying no canonical tag.","default":0,"uniqueKey":"\\items.items.[INDEX].untagged_permit_count","typeLabel":"integer"},"total_job_value":{"type":"integer","title":"Total Job Value","description":"Sum of permit job values in integer cents (dollars x 100).","default":0,"uniqueKey":"\\items.items.[INDEX].total_job_value","typeLabel":"integer"},"contractor_count":{"type":"integer","title":"Contractor Count","description":"Distinct contractors across the address's permits.","default":0,"uniqueKey":"\\items.items.[INDEX].contractor_count","typeLabel":"integer"},"tags":{"items":{"type":"string","uniqueKey":"\\items.items.[INDEX].tags.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Tags","description":"Distinct canonical tags present on the address's permits.","default":[],"uniqueKey":"\\items.items.[INDEX].tags","typeLabel":"string[]"},"tag_status_pairs":{"items":{"type":"string","uniqueKey":"\\items.items.[INDEX].tag_status_pairs.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Tag Status Pairs","description":"Distinct tag:status pairs (status folded to 'unknown' when NULL).","default":[],"uniqueKey":"\\items.items.[INDEX].tag_status_pairs","typeLabel":"string[]"},"statuses":{"items":{"type":"string","uniqueKey":"\\items.items.[INDEX].statuses.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Statuses","description":"Distinct permit statuses incl the 'unknown' NULL fold.","default":[],"uniqueKey":"\\items.items.[INDEX].statuses","typeLabel":"string[]"},"tag_tally":{"additionalProperties":{"type":"integer","uniqueKey":"\\items.items.[INDEX].tag_tally.additionalProperties","typeLabel":"integer"},"type":"object","title":"Tag Tally","description":"Map tag -> permit count.","default":{},"uniqueKey":"\\items.items.[INDEX].tag_tally","typeLabel":"Tag Tally · object"},"last_date_by_tag":{"additionalProperties":{"type":"string","uniqueKey":"\\items.items.[INDEX].last_date_by_tag.additionalProperties","typeLabel":"string"},"type":"object","title":"Last Date By Tag","description":"Map tag -> latest permit start_date.","default":{},"uniqueKey":"\\items.items.[INDEX].last_date_by_tag","typeLabel":"Last Date By Tag · object"},"last_unfinaled_date_by_tag":{"additionalProperties":{"type":"string","uniqueKey":"\\items.items.[INDEX].last_unfinaled_date_by_tag.additionalProperties","typeLabel":"string"},"type":"object","title":"Last Unfinaled Date By Tag","description":"Map tag -> latest non-final start_date under the clear rule.","default":{},"uniqueKey":"\\items.items.[INDEX].last_unfinaled_date_by_tag","typeLabel":"Last Unfinaled Date By Tag · object"},"last_date_by_pair":{"additionalProperties":{"type":"string","uniqueKey":"\\items.items.[INDEX].last_date_by_pair.additionalProperties","typeLabel":"string"},"type":"object","title":"Last Date By Pair","description":"Map tag:status -> latest permit start_date.","default":{},"uniqueKey":"\\items.items.[INDEX].last_date_by_pair","typeLabel":"Last Date By Pair · object"},"last_date_by_status":{"additionalProperties":{"type":"string","uniqueKey":"\\items.items.[INDEX].last_date_by_status.additionalProperties","typeLabel":"string"},"type":"object","title":"Last Date By Status","description":"Map status -> latest permit start_date.","default":{},"uniqueKey":"\\items.items.[INDEX].last_date_by_status","typeLabel":"Last Date By Status · object"},"last_permit_date":{"oneOf":[{"type":"string","title":"Last Permit Date","description":"Latest permit start_date across all of the address's permits; null when never permitted.","format":"date","uniqueKey":"\\items.items.[INDEX].last_permit_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"Last Permit Date","description":"Latest permit start_date across all of the address's permits; null when never permitted.","uniqueKey":"\\items.items.[INDEX].last_permit_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].last_permit_date","typeLabel":"string\u003cdate> | null"},"apn":{"oneOf":[{"type":"string","title":"Apn","description":"Assessor parcel number.","uniqueKey":"\\items.items.[INDEX].apn.oneOf.0","typeLabel":"string"},{"type":"null","title":"Apn","description":"Assessor parcel number.","uniqueKey":"\\items.items.[INDEX].apn.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].apn","typeLabel":"string | null"},"property_type":{"oneOf":[{"type":"string","title":"Property Type","description":"Property type.","uniqueKey":"\\items.items.[INDEX].property_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Type","description":"Property type.","uniqueKey":"\\items.items.[INDEX].property_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].property_type","typeLabel":"string | null"},"property_type_detail":{"oneOf":[{"type":"string","title":"Property Type Detail","description":"Property type detail.","uniqueKey":"\\items.items.[INDEX].property_type_detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Type Detail","description":"Property type detail.","uniqueKey":"\\items.items.[INDEX].property_type_detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].property_type_detail","typeLabel":"string | null"},"year_built":{"oneOf":[{"type":"integer","title":"Year Built","description":"Year the property was built.","uniqueKey":"\\items.items.[INDEX].year_built.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Year Built","description":"Year the property was built.","uniqueKey":"\\items.items.[INDEX].year_built.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].year_built","typeLabel":"integer | null"},"lot_size":{"oneOf":[{"type":"integer","title":"Lot Size","description":"Lot size of the property.","uniqueKey":"\\items.items.[INDEX].lot_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Lot Size","description":"Lot size of the property.","uniqueKey":"\\items.items.[INDEX].lot_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].lot_size","typeLabel":"integer | null"},"story_count":{"oneOf":[{"type":"integer","title":"Story Count","description":"Number of stories in the property.","uniqueKey":"\\items.items.[INDEX].story_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Story Count","description":"Number of stories in the property.","uniqueKey":"\\items.items.[INDEX].story_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].story_count","typeLabel":"integer | null"},"unit_count":{"oneOf":[{"type":"integer","title":"Unit Count","description":"Number of units in the property.","uniqueKey":"\\items.items.[INDEX].unit_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Unit Count","description":"Number of units in the property.","uniqueKey":"\\items.items.[INDEX].unit_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].unit_count","typeLabel":"integer | null"},"building_area":{"oneOf":[{"type":"integer","title":"Building Area","description":"Building area of the property.","uniqueKey":"\\items.items.[INDEX].building_area.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Building Area","description":"Building area of the property.","uniqueKey":"\\items.items.[INDEX].building_area.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].building_area","typeLabel":"integer | null"},"assess_market_value":{"oneOf":[{"type":"integer","title":"Assess Market Value","description":"Assessed market value in integer cents (dollars x 100).","uniqueKey":"\\items.items.[INDEX].assess_market_value.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Assess Market Value","description":"Assessed market value in integer cents (dollars x 100).","uniqueKey":"\\items.items.[INDEX].assess_market_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].assess_market_value","typeLabel":"integer | null"},"owner_type":{"oneOf":[{"type":"string","title":"Owner Type","description":"Type of property owner.","uniqueKey":"\\items.items.[INDEX].owner_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Owner Type","description":"Type of property owner.","uniqueKey":"\\items.items.[INDEX].owner_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].owner_type","typeLabel":"string | null"},"legal_owner":{"oneOf":[{"type":"string","title":"Legal Owner","description":"Legal owner of the property.","uniqueKey":"\\items.items.[INDEX].legal_owner.oneOf.0","typeLabel":"string"},{"type":"null","title":"Legal Owner","description":"Legal owner of the property.","uniqueKey":"\\items.items.[INDEX].legal_owner.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].legal_owner","typeLabel":"string | null"},"trust":{"oneOf":[{"type":"object","title":"PropertyTrust","description":"Per-row absence-honesty surface; present only on absence-class responses.","required":["unresolved_rate","coverage_tier","data_horizon","horizon_basis","trust_jurisdiction_basis","footprint_basis"],"properties":{"unresolved_rate":{"type":"number","maximum":1,"minimum":0,"title":"Unresolved Rate","description":"Share of the row jurisdiction's permits of the tag that never linked to an address.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.unresolved_rate","typeLabel":"number"},"coverage_tier":{"type":"string","enum":["high","medium","low"],"title":"Coverage Tier","description":"Coverage bucket for the row's jurisdiction (90/50 cutoffs).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.coverage_tier","typeLabel":"enum\u003cstring>"},"data_horizon":{"type":"string","format":"date","title":"Data Horizon","description":"Most recent start_date past which 'no X since D' is under-observed; never null.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.data_horizon","typeLabel":"string\u003cdate>"},"horizon_basis":{"type":"string","enum":["measured","pooled","prior"],"title":"Horizon Basis","description":"How data_horizon was estimated: a measured cohort, a pooled fallback, or the state prior.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.horizon_basis","typeLabel":"enum\u003cstring>"},"trust_jurisdiction_basis":{"type":"string","enum":["own","dominant","unknown"],"title":"Trust Jurisdiction Basis","description":"Whether the trust join used the row's own jurisdiction, its ZIP's dominant one, or none.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.trust_jurisdiction_basis","typeLabel":"enum\u003cstring>"},"footprint_basis":{"type":"string","enum":["matched","unknown"],"title":"Footprint Basis","description":"Whether footprint suppression could resolve the row's geo scope.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.footprint_basis","typeLabel":"enum\u003cstring>"},"trust_jurisdiction_error_bar":{"type":"number","maximum":1,"minimum":0,"title":"Trust Jurisdiction Error Bar","description":"Measured error rate of the trust jurisdiction: the 6.13% ZIP-dominant estimate error on a 'dominant' basis, 0 on an 'own' or 'unknown' basis.","default":0,"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.trust_jurisdiction_error_bar","typeLabel":"number"},"flags":{"items":{"type":"string","uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.flags.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Flags","description":"Row-grain honesty flags, e.g. since_d_beyond_horizon or trust_row_missing.","default":[],"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0.flags","typeLabel":"string[]"}},"uniqueKey":"\\items.items.[INDEX].trust.oneOf.0","typeLabel":"PropertyTrust · object"},{"type":"null","description":"Per-row absence-honesty surface; present only on absence-class responses.","uniqueKey":"\\items.items.[INDEX].trust.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].trust","typeLabel":"PropertyTrust · object | null"}},"type":"object","required":["id"],"title":"PropertiesRead","description":"Response schema for one property, served by both /properties endpoints.\n\nThe public id is the base64 address handle. Presence arrays and the maps default to\npresent-and-empty so a never-permitted row serializes zero counts and empty\ncollections; attributes, dates, and trust are nullable. trust is None on non-absence\nresponses and a PropertyTrust on absence responses (optional-by-polarity).","uniqueKey":"\\items.items.[INDEX]","typeLabel":"PropertiesRead · object"},"type":"array","title":"Items","description":"The list of items returned in the response following given criteria.","isRequired":true,"uniqueKey":"\\items","typeLabel":"PropertiesRead · object[]"},"size":{"type":"integer","title":"Size","description":"The number of items returned in the response.","isRequired":true,"uniqueKey":"size","typeLabel":"integer"},"next_cursor":{"oneOf":[{"type":"string","title":"Next Cursor","description":"The cursor for retrieving the next page of results.","isRequired":true,"uniqueKey":"next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","title":"Next Cursor","description":"The cursor for retrieving the next page of results.","isRequired":true,"uniqueKey":"next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_cursor","typeLabel":"string | null"},"total_count":{"oneOf":[{"type":"object","title":"TotalCount","description":"Top-level count object, not an integer: {\"value\": 970, \"relation\": \"eq\"}. \"eq\" means an exact count up to 10,000. \"gte\" means at least 10,000 matches, with value set to 10,000. Counted only when requested on the first page without a cursor. null when not requested, on later pages, or when the count query times out.","required":["value","relation"],"example":{"relation":"eq","value":970},"properties":{"value":{"type":"integer","minimum":0,"title":"Value","description":"The count value; capped at the probe's cap (10,000 on the wire).","isRequired":true,"uniqueKey":"total_count.oneOf.0.value","typeLabel":"integer"},"relation":{"type":"string","enum":["eq","gte"],"title":"Relation","description":"\"eq\" means value is the exact count. \"gte\" means the actual count is at least value (the cap).","isRequired":true,"uniqueKey":"total_count.oneOf.0.relation","typeLabel":"enum\u003cstring>"}},"uniqueKey":"total_count.oneOf.0","typeLabel":"TotalCount · object"},{"type":"null","description":"Top-level count object, not an integer: {\"value\": 970, \"relation\": \"eq\"}. \"eq\" means an exact count up to 10,000. \"gte\" means at least 10,000 matches, with value set to 10,000. Counted only when requested on the first page without a cursor. null when not requested, on later pages, or when the count query times out.","example":{"relation":"eq","value":970},"uniqueKey":"total_count.oneOf.1","typeLabel":"null"}],"uniqueKey":"total_count","typeLabel":"TotalCount · object | null"},"trust_summary":{"oneOf":[{"type":"object","title":"TrustSummary","description":"Row-weighted trust summary; present only on absence-class responses.","required":["rows_flagged","row_weighted_unresolved_rate","expected_miss_rate","suppressed_scopes"],"properties":{"rows_flagged":{"type":"integer","minimum":0,"title":"Rows Flagged","description":"Number of rows on the page carrying a trust flag.","isRequired":true,"uniqueKey":"trust_summary.oneOf.0.rows_flagged","typeLabel":"integer"},"row_weighted_unresolved_rate":{"type":"number","maximum":1,"minimum":0,"title":"Row Weighted Unresolved Rate","description":"Row-weighted mean unresolved_rate across the page.","isRequired":true,"uniqueKey":"trust_summary.oneOf.0.row_weighted_unresolved_rate","typeLabel":"number"},"expected_miss_rate":{"type":"number","maximum":1,"minimum":0,"title":"Expected Miss Rate","description":"Estimated share of true matches absent from arrived data due to ingestion lag.","isRequired":true,"uniqueKey":"trust_summary.oneOf.0.expected_miss_rate","typeLabel":"number"},"suppressed_scopes":{"type":"integer","minimum":0,"title":"Suppressed Scopes","description":"Number of footprint scopes excluded from the result by suppression.","isRequired":true,"uniqueKey":"trust_summary.oneOf.0.suppressed_scopes","typeLabel":"integer"}},"uniqueKey":"trust_summary.oneOf.0","typeLabel":"TrustSummary · object"},{"type":"null","description":"Row-weighted trust summary; present only on absence-class responses.","uniqueKey":"trust_summary.oneOf.1","typeLabel":"null"}],"uniqueKey":"trust_summary","typeLabel":"TrustSummary · object | null"}},"type":"object","required":["items","size","next_cursor"],"title":"PaginatedPropertiesResponse","description":"Paginated /properties response; carries the honesty summary on absence pages.","uniqueKey":"","typeLabel":"PaginatedPropertiesResponse · object"},"examples":{"Example":{"title":"Example","value":{"items":[{"id":"\u003cstring>","street_no":"\u003cstring>","street":"\u003cstring>","city":"\u003cstring>","city_id":"\u003cstring>","zip_code":"\u003cstring>","zip_code_ext":"\u003cstring>","county":"\u003cstring>","county_id":"\u003cstring>","state":"\u003cstring>","lat":123,"long":123,"permit_count":0,"untagged_permit_count":0,"total_job_value":0,"contractor_count":0,"tags":[],"tag_status_pairs":[],"statuses":[],"tag_tally":{},"last_date_by_tag":{},"last_unfinaled_date_by_tag":{},"last_date_by_pair":{},"last_date_by_status":{},"last_permit_date":"2023-12-25","apn":"\u003cstring>","property_type":"\u003cstring>","property_type_detail":"\u003cstring>","year_built":123,"lot_size":123,"story_count":123,"unit_count":123,"building_area":123,"assess_market_value":123,"owner_type":"\u003cstring>","legal_owner":"\u003cstring>","trust":{"unresolved_rate":0.5,"coverage_tier":"high","data_horizon":"2023-12-25","horizon_basis":"measured","trust_jurisdiction_basis":"own","footprint_basis":"matched","trust_jurisdiction_error_bar":0,"flags":[]}}],"size":123,"next_cursor":"\u003cstring>","total_count":{"relation":"eq","value":970},"trust_summary":{"rows_flagged":1,"row_weighted_unresolved_rate":0.5,"expected_miss_rate":0.5,"suppressed_scopes":1}}}},"exampleType":"generated"}},"exampleType":"generated"},"cf9749f9-c815-4c54-bac6-8a7a8963a1dd":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"70210f23-b8d4-4ef6-a112-22eeba2b3afe":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"APIKeyHeader"}}},"servers":{"370fdb2b-7744-45ce-9b90-cd3a263353be":{"url":"https://api.shovels.ai/v2","description":"Shovels API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"APIKeyHeader"},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"X-API-Key"}],"title":"APIKeyHeader"}]},"originalFileLocation":"https://api.shovels.ai/spec/v2/openapi.production.yaml"},"subdomain":"shovelsai","siteName":"Shovels Documentation","title":"Get Properties By Id - Shovels Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T18:08:20.894Z","originalFileLocation":"api-reference/properties/get-properties-by-id.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=\"Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Shovels 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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_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/shovelsai/0tzx6OgdpifPiQBm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get Properties By Id - Shovels Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Shovels Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.shovels.ai/assets/shovels-logo.png\">\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=\"Get Properties By Id - Shovels Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.shovels.ai/assets/shovels-logo.png\">\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/shovelsai/0tzx6OgdpifPiQBm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Shovels Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#01654D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/properties/get-properties-by-id.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.shovels.ai/#organization\",\"name\":\"Shovels Documentation\",\"url\":\"https://docs.shovels.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/shovelsai/RpZdSdGGx61eI0yq/assets/shovels-logo.png?fit=max\u0026auto=format\u0026n=RpZdSdGGx61eI0yq\u0026q=85\u0026s=4580f7cd0725b33ba31367d40fda3bbf\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shovels.ai#website\",\"name\":\"Shovels Documentation\",\"url\":\"https://docs.shovels.ai\",\"publisher\":{\"@id\":\"https://docs.shovels.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id#webpage\",\"url\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id\",\"name\":\"Get Properties By Id\",\"description\":\"Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\",\"dateModified\":\"2026-11-03T18:08:20.894Z\",\"isPartOf\":{\"@id\":\"https://docs.shovels.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.shovels.ai/api-reference/permits/search-permits\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get Properties By Id\",\"item\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id#apireference\",\"headline\":\"Get Properties By Id\",\"name\":\"Get Properties By Id\",\"description\":\"Beta. Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties by their address id. Provide up to 50 id query parameters in one call; rows come back in request order and unknown ids are omitted (no per-id 404). A non-address geolocation id (city, county, or jurisdiction) is rejected.\",\"url\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shovels.ai/api-reference/properties/get-properties-by-id#webpage\"},\"image\":\"https://docs.shovels.ai/assets/shovels-logo.png\",\"dateModified\":\"2026-11-03T18:08:20.894Z\",\"publisher\":{\"@id\":\"https://docs.shovels.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shovels.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Shovels Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Shovels Documentation","nav":{"global":{"anchors":[{"anchor":"Data Dictionary","icon":"book-open-cover","href":"https://www.shovels.ai/data-dictionary"},{"anchor":"Coverage Dashboard","icon":"map-pin","href":"https://www.shovels.ai/coverage"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/Nypja3cKDx"},{"anchor":"Blog","icon":"newspaper","href":"https://www.shovels.ai/blog/"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction"}]},{"tab":"API Reference","groups":[{"group":"Getting Started","pages":[{"title":"About the API Reference","href":"/docs/api-reference-about"}]},{"group":"Endpoints","pages":[{"group":"Permits","pages":[{"title":"Search Permits","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /permits/search","href":"/api-reference/permits/search-permits"},{"title":"Get Permits By Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /permits","href":"/api-reference/permits/get-permits-by-id"}]},{"group":"Decisions","pages":[{"title":"Search Decisions","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /decisions/search","href":"/api-reference/decisions/search-decisions"},{"title":"Get Decisions By Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /decisions","href":"/api-reference/decisions/get-decisions-by-id"}]},{"group":"Contractors","pages":[{"title":"Get Contractors By Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /contractors","href":"/api-reference/contractors/get-contractors-by-id"},{"title":"Search Contractors","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /contractors/search","href":"/api-reference/contractors/search-contractors"},{"title":"Get Permits By Contractor Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /contractors/{id}/permits","href":"/api-reference/contractors/get-permits-by-contractor-id"},{"title":"Get Contractor Employees","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /contractors/{id}/employees","href":"/api-reference/contractors/get-contractor-employees"},{"title":"Get Filtered Metrics By Contractor Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /contractors/{id}/metrics","href":"/api-reference/contractors/get-filtered-metrics-by-contractor-id"}]},{"group":"Addresses","pages":[{"title":"Search Addresses","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /addresses/search","href":"/api-reference/addresses/search-addresses"},{"title":"Get Address Metrics Monthly","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /addresses/{geo_id}/metrics/monthly","href":"/api-reference/addresses/get-address-metrics-monthly"},{"title":"Get Address Metrics Current","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /addresses/{geo_id}/metrics/current","href":"/api-reference/addresses/get-address-metrics-current"},{"title":"Get Residents","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /addresses/{geo_id}/residents","href":"/api-reference/addresses/get-residents"}]},{"group":"Cities","pages":[{"title":"Search Cities","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /cities/search","href":"/api-reference/cities/search-cities"},{"title":"Get City Metrics Monthly","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /cities/{geo_id}/metrics/monthly","href":"/api-reference/cities/get-city-metrics-monthly"},{"title":"Get City Metrics Current","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /cities/{geo_id}/metrics/current","href":"/api-reference/cities/get-city-metrics-current"},{"title":"Get City Details","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /cities","href":"/api-reference/cities/get-city-details"}]},{"group":"Counties","pages":[{"title":"Search Counties","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /counties/search","href":"/api-reference/counties/search-counties"},{"title":"Get County Metrics Monthly","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /counties/{geo_id}/metrics/monthly","href":"/api-reference/counties/get-county-metrics-monthly"},{"title":"Get County Metrics Current","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /counties/{geo_id}/metrics/current","href":"/api-reference/counties/get-county-metrics-current"},{"title":"Get County Details","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /counties","href":"/api-reference/counties/get-county-details"}]},{"group":"Jurisdictions","pages":[{"title":"Search Jurisdictions","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /jurisdictions/search","href":"/api-reference/jurisdictions/search-jurisdictions"},{"title":"Get Jurisdiction Metrics Monthly","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /jurisdictions/{geo_id}/metrics/monthly","href":"/api-reference/jurisdictions/get-jurisdiction-metrics-monthly"},{"title":"Get Jurisdiction Metrics Current","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /jurisdictions/{geo_id}/metrics/current","href":"/api-reference/jurisdictions/get-jurisdiction-metrics-current"},{"title":"Get Jurisdiction Details","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /jurisdictions","href":"/api-reference/jurisdictions/get-jurisdiction-details"}]},{"group":"Zipcodes","pages":[{"title":"Search Zipcodes","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /zipcodes/search","href":"/api-reference/zipcodes/search-zipcodes"}]},{"group":"States","pages":[{"title":"Search States","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /states/search","href":"/api-reference/states/search-states"}]},{"group":"Meta","pages":[{"title":"Get Data Release Date","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /meta/release","href":"/api-reference/meta/get-data-release-date"},{"title":"Get Coverage","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /meta/coverage","href":"/api-reference/meta/get-coverage"}]},{"group":"Lists","pages":[{"title":"Get All Available Zip Codes","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /list/zip","href":"/api-reference/lists/get-all-available-zip-codes"},{"title":"Get All Available Tags","description":"Returns all available permit tags.","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /list/tags","href":"/api-reference/lists/get-all-available-tags"}]},{"group":"Properties","pages":[{"title":"Get Properties By Id","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /properties","href":"/api-reference/properties/get-properties-by-id"},{"title":"Search Properties","description":"**Beta.** Query parameters, response fields, and the absence-trust surface may still change in response to how the endpoint is used in practice. Treat the shape as unstable while it is in beta. Returns properties within a geo scope (state, county, city, ZIP, ZIP+4, or address) and/or owned by named `legal_owner`s, most recently permitted first. At least one of `geo_id` and `legal_owner` is required; a `legal_owner` search needs no geo scope. Pass `cursor` from a page's `next_cursor` to page through results. Filter by `permit_tags` (presence and `-`-prefixed exclusion), `permit_status`, `permit_from`, and `property_type`. Properties with no attributed type are excluded; property attributes are available for 70.1% of properties. An absence filter (a `-`-prefixed tag) returns properties with no resolved permit of the excluded type in covered, arrived data: a permit that never linked to an address, or one that has not yet arrived within a jurisdiction's ingestion lag, is not counted against the claim. Every absence-class row carries a `trust` object stating three honesty terms — the jurisdiction's permit `coverage_tier`, its `unresolved_rate` (the share of its permits that never linked to an address), and the row's `data_horizon` — plus `horizon_basis` (whether that horizon is measured, pooled, or a state prior) and `footprint_basis` (whether suppression could resolve the row's geo); the response `trust_summary` row-weights them across the page. A presence-only search omits both. Freshness: /properties is served from a whole-table rebuild swapped in by a blue/green cutover — the rebuild is the unit of refresh, and the absence-trust metadata is rebuilt from the same data it describes. An absence claim's staleness bound is the rebuild cadence plus each jurisdiction's permit-ingestion lag: permits reach the data a median 84 days (p90 188 days) after their start_date, so a recent 'no permit since D' stays under-observed until that lag elapses. Each row's `data_horizon` is the per-row handle on that bound — the most recent start_date past which 'no X since D' is under-observed for that row. Not supported, each for one reason: `permit_to` or any upper date bound — a max-date rollup cannot bound a closed date window without dropping addresses whose latest permit postdates it (use /permits/search); 'before D' absence — a max-date cannot tell a history that also holds later permits from one that does not; closed-window absence within [D1, D2] — only 'ever' and 'since D' are expressible on max-date maps; 'has X since D and no Y since D' in one query — a mixed query binds an exclusion to 'ever', so per-predicate dates cannot be composed; and jurisdiction geo_ids as a scope.","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /properties/search","href":"/api-reference/properties/search-properties"}]},{"group":"Usage","pages":[{"title":"Get Usage","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /usage","href":"/api-reference/usage/get-usage"}]}]}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/release-notes"}]},{"tab":"Knowledge Base","pages":[{"title":"Knowledge Base","href":"/docs/knowledge-base"}]}]},"basePath":"","title":"Get Properties By Id - Shovels Documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}