Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor’s derived classifications (ALL specified values required).
GET
/
permits
/
search
Search Permits
curl --request GET \
--url https://api.shovels.ai/v2/permits/search \
--header 'X-API-Key: <api-key>'
Return permits that started on or after the specified date.This includes all permits with the earliest date (file, issue, or start date) that falls on or after this date. Date format: YYYY-MM-DD
Return permits that started on or before the specified date.This includes all permits with the latest date (file, issue, or end date) that falls on or before this date. Date format: YYYY-MM-DD
Search permit descriptions. Permits search uses case-insensitive substring matching, including partial words. Contractors search uses full-text search with English stemming. For example, installing matches install. Multi-word contractor queries require all words after English text processing. For example, solar panel requires both solar and panel.
Filter by property type: residential, commercial, industrial, agricultural, vacant land, exempt, miscellaneous, office, recreational. Repeat the key to match any of several types (e.g. ?property_type=residential&property_type=commercial).
Filter by contractor's name or business name (partial match supported). Must be at least 3 characters — shorter patterns cannot use the trigram index and would force a sequential scan.
Filter by contractor's website prefix. Surrounding whitespace is trimmed and input is lowercased. Leading http://, https://, and www. prefixes and trailing slashes are removed. Paths are retained. A value that is empty after normalization applies no website filter.
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.
Show child attributes
Example:
{ "relation": "eq", "value": 970 }
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":"6ae25e68f001fe32fd8de24d","collectionId":"c26e7288-495c-40a8-9c54-1827a9a99477","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae25e68f001fe32fd8de24d"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae25e68f001fe32fd8de24d","clientVersion":"0.0.4021","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":"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":"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":"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":"workos-enabled","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/permits/search-permits","slug":"/api-reference/permits/search-permits","pageMetadata":{"title":"Search Permits","description":"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor's derived classifications (ALL specified values required).","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /permits/search","href":"/api-reference/permits/search-permits","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor’s derived classifications (ALL specified values required).\"\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":"Search Permits","description":"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor's derived classifications (ALL specified values required).","deprecated":null,"version":null,"openapi":"https://api.shovels.ai/spec/v2/openapi.production.yaml get /permits/search","href":"/api-reference/permits/search-permits","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Permits","Permits"],"summary":"Search Permits","description":"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor's derived classifications (ALL specified values required).","operationId":"search_permits_permits_search_get","security":["9b3ebcaa-e4ff-48ca-bb1d-2c47f898fde2"],"parameters":["d67e3a09-b2b1-4ca7-a80a-cfa7d121a774","44cf8929-3698-4a1d-8176-d07dc7405cb6","23dfd135-1518-4f72-93c1-1e2b7e7a942e","1c9098c1-d18e-4274-9654-56f57d6ec5ba","7104d06e-18fe-494a-ac41-0cc6c1ec7e5c","ebb1a213-eeb4-45e2-918a-e8419b360d3d","dcaab7e1-e93a-4ae0-a27f-e516356d94af","d24dc6ba-d8da-445d-83f5-4aa1c1993113","247bd7a7-76ed-45ba-a71a-6d874c78ee4c","933650c8-31f0-4c7a-8e0a-696d1c52f3d3","573b0a23-8e45-474c-a98f-a2f049b916fb","1fa7ca3f-64e9-4f48-823d-70e73d2f03fd","8b13380c-6093-4af8-abed-3e4b1b5db65c","ae0f7b96-a6e1-4ce8-a828-3068379cf1eb","c4dc5567-365c-4042-bf49-b208e68db803","7e50f04d-ae49-4e5d-b1d6-23ca8caed617","63066261-0766-41a9-9fdf-42215cdcee60","74537ea6-3083-47f6-b630-e93e856c5d21","5616168e-2256-4168-9b83-d495858e3827","23bd3b75-2f0c-4d95-ba14-9d12b21782bc","39387b07-8350-4ff3-a771-6a99cbca14c7","970592bf-3e28-4871-aa41-7a44fbe21c6b","3eb0226b-6cb0-436f-9034-68557bb8a324","6ad8fa58-29e0-4769-a1de-e3ae30e08f7f","60609aa6-e013-4839-baa1-664b23b877cc","c7f833bf-dd01-499b-b145-5907e55d5b91","f9edf902-4f04-461b-aded-be267ce9e400","c7cbdccf-3406-4dde-804c-547080928bfc"],"responses":{"200":"7ac465bf-5e3c-4597-aa55-2106bfb7b8d2","422":"5a44a4dc-04bd-4e46-aba6-356f4c2a6c0b"},"method":"get","type":"path","servers":["7c8afacc-d063-40d4-8924-75c6b5f91dea"],"path":"/permits/search","baseUrlOptions":["https://api.shovels.ai/v2"],"title":"Search Permits","codeSamples":[],"requestExampleLanguages":["bash","python","java","go","ruby","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"d67e3a09-b2b1-4ca7-a80a-cfa7d121a774":{"name":"permit_from","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Permit From Date","description":"Return permits that started on or after the specified date.This includes all permits with the earliest date (file, issue, or start date) that falls on or after this date. Date format: `YYYY-MM-DD`","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cdate>"},"description":"Return permits that started on or after the specified date.This includes all permits with the earliest date (file, issue, or start date) that falls on or after this date. Date format: `YYYY-MM-DD`"},"44cf8929-3698-4a1d-8176-d07dc7405cb6":{"name":"permit_to","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Permit To Date","description":"Return permits that started on or before the specified date.This includes all permits with the latest date (file, issue, or end date) that falls on or before this date. Date format: `YYYY-MM-DD`","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cdate>"},"description":"Return permits that started on or before the specified date.This includes all permits with the latest date (file, issue, or end date) that falls on or before this date. Date format: `YYYY-MM-DD`"},"23dfd135-1518-4f72-93c1-1e2b7e7a942e":{"name":"permit_tags","in":"query","required":false,"schema":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Permit Tags","description":"Filter by one or more tags. Use '-' prefix to exclude tags. Example: ?permit_tags=solar\u0026permit_tags=-roofing (has solar, not roofing).","uniqueKey":"oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Permit Tags","description":"Filter by one or more tags. Use '-' prefix to exclude tags. Example: ?permit_tags=solar\u0026permit_tags=-roofing (has solar, not roofing).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string[] | null"},"description":"Filter by one or more tags. Use '-' prefix to exclude tags. Example: ?permit_tags=solar\u0026permit_tags=-roofing (has solar, not roofing)."},"1c9098c1-d18e-4274-9654-56f57d6ec5ba":{"name":"geo_id","in":"query","required":true,"schema":{"type":"string","title":"Geolocation ID","description":"Filter results by geographic area. Accepts:\n- US state code (e.g. `CA`)\n- ZIP code (e.g. `90210` or `90210-1234`)\n- Shovels geolocation ID for an address, city, county, or jurisdiction (e.g. `a4xysKbZwqg`)\n\nResolve addresses and places to geolocation IDs via:\n- [Search Addresses](/api-reference/addresses/search-addresses)\n- [Search Cities](/api-reference/cities/search-cities)\n- [Search Counties](/api-reference/counties/search-counties)\n- [Search Jurisdictions](/api-reference/jurisdictions/search-jurisdictions)\n\nFree-form text such as `\"123 Main St\"` is not accepted.","isRequired":true,"uniqueKey":"","typeLabel":"string"},"description":"Filter results by geographic area. Accepts:\n- US state code (e.g. `CA`)\n- ZIP code (e.g. `90210` or `90210-1234`)\n- Shovels geolocation ID for an address, city, county, or jurisdiction (e.g. `a4xysKbZwqg`)\n\nResolve addresses and places to geolocation IDs via:\n- [Search Addresses](/api-reference/addresses/search-addresses)\n- [Search Cities](/api-reference/cities/search-cities)\n- [Search Counties](/api-reference/counties/search-counties)\n- [Search Jurisdictions](/api-reference/jurisdictions/search-jurisdictions)\n\nFree-form text such as `\"123 Main St\"` is not accepted."},"7104d06e-18fe-494a-ac41-0cc6c1ec7e5c":{"name":"permit_has_contractor","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean","title":"Has Contractor","description":"Filter by contractor presence: `true` returns only permits with a contractor, `false` only permits without one. Omit to apply no filter.","uniqueKey":"oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Has Contractor","description":"Filter by contractor presence: `true` returns only permits with a contractor, `false` only permits without one. Omit to apply no filter.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"boolean | null"},"description":"Filter by contractor presence: `true` returns only permits with a contractor, `false` only permits without one. Omit to apply no filter."},"ebb1a213-eeb4-45e2-918a-e8419b360d3d":{"name":"cursor","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Cursor","description":"Cursor for pagination","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Cursor","description":"Cursor for pagination","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"},"description":"Cursor for pagination"},"dcaab7e1-e93a-4ae0-a27f-e516356d94af":{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Size","isRequired":false,"uniqueKey":"","typeLabel":"integer"}},"d24dc6ba-d8da-445d-83f5-4aa1c1993113":{"name":"include_count","in":"query","required":false,"schema":{"type":"boolean","description":"When true and on the first page (no cursor), include total_count in the response. The count is exact up to 10,000; above that, relation is 'gte'.","default":false,"title":"Include Count","isRequired":false,"uniqueKey":"","typeLabel":"boolean"},"description":"When true and on the first page (no cursor), include total_count in the response. The count is exact up to 10,000; above that, relation is 'gte'."},"247bd7a7-76ed-45ba-a71a-6d874c78ee4c":{"name":"permit_q","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Search Query","description":"Search permit descriptions. Permits search uses case-insensitive substring matching, including partial words. Contractors search uses full-text search with English stemming. For example, installing matches install. Multi-word contractor queries require all words after English text processing. For example, solar panel requires both solar and panel.","maxLength":50,"uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Search Query","description":"Search permit descriptions. Permits search uses case-insensitive substring matching, including partial words. Contractors search uses full-text search with English stemming. For example, installing matches install. Multi-word contractor queries require all words after English text processing. For example, solar panel requires both solar and panel.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"},"description":"Search permit descriptions. Permits search uses case-insensitive substring matching, including partial words. Contractors search uses full-text search with English stemming. For example, installing matches install. Multi-word contractor queries require all words after English text processing. For example, solar panel requires both solar and panel."},"933650c8-31f0-4c7a-8e0a-696d1c52f3d3":{"name":"permit_status","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","uniqueKey":"items.[INDEX]","typeLabel":"string"},"title":"Permit Status","description":"Filter by one or more statuses: final, in_review, inactive, active.","maxItems":4,"isRequired":false,"uniqueKey":"","typeLabel":"string[]"},"description":"Filter by one or more statuses: final, in_review, inactive, active."},"573b0a23-8e45-474c-a98f-a2f049b916fb":{"name":"permit_min_approval_duration","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Minimum Permit Approval Duration","description":"Filter by the minimum permit approval duration in days.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Minimum Permit Approval Duration","description":"Filter by the minimum permit approval duration in days.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Filter by the minimum permit approval duration in days."},"1fa7ca3f-64e9-4f48-823d-70e73d2f03fd":{"name":"permit_min_construction_duration","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Minimum Project Construction Duration","description":"Filter by the minimum project construction duration in days.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Minimum Project Construction Duration","description":"Filter by the minimum project construction duration in days.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Filter by the minimum project construction duration in days."},"8b13380c-6093-4af8-abed-3e4b1b5db65c":{"name":"permit_min_inspection_pr","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Minimum Inspection Pass Rate","description":"Filter by the minimum inspection pass rate.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Minimum Inspection Pass Rate","description":"Filter by the minimum inspection pass rate.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Filter by the minimum inspection pass rate."},"ae0f7b96-a6e1-4ce8-a828-3068379cf1eb":{"name":"permit_min_job_value","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Minimum Job Value","description":"Filter by the minimum job value, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Minimum Job Value","description":"Filter by the minimum job value, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Filter by the minimum job value, in cents (e.g. 5000000 = $50,000)."},"c4dc5567-365c-4042-bf49-b208e68db803":{"name":"permit_min_fees","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Minimum Permit Fees","description":"Filter by minimum permit fees, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Minimum Permit Fees","description":"Filter by minimum permit fees, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Filter by minimum permit fees, in cents (e.g. 5000000 = $50,000)."},"7e50f04d-ae49-4e5d-b1d6-23ca8caed617":{"name":"property_type","in":"query","required":false,"schema":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Property Type","description":"Filter by property type: residential, commercial, industrial, agricultural, vacant land, exempt, miscellaneous, office, recreational. Repeat the key to match any of several types (e.g. `?property_type=residential\u0026property_type=commercial`).","uniqueKey":"oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Property Type","description":"Filter by property type: residential, commercial, industrial, agricultural, vacant land, exempt, miscellaneous, office, recreational. Repeat the key to match any of several types (e.g. `?property_type=residential\u0026property_type=commercial`).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string[] | null"},"description":"Filter by property type: residential, commercial, industrial, agricultural, vacant land, exempt, miscellaneous, office, recreational. Repeat the key to match any of several types (e.g. `?property_type=residential\u0026property_type=commercial`)."},"63066261-0766-41a9-9fdf-42215cdcee60":{"name":"property_min_market_value","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Property Market Value","description":"Minimum assessed market value of the property, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Property Market Value","description":"Minimum assessed market value of the property, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum assessed market value of the property, in cents (e.g. 5000000 = $50,000)."},"74537ea6-3083-47f6-b630-e93e856c5d21":{"name":"property_min_building_area","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Property Building Area","description":"Minimum total building area in sq ft.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Property Building Area","description":"Minimum total building area in sq ft.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum total building area in sq ft."},"5616168e-2256-4168-9b83-d495858e3827":{"name":"property_min_lot_size","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Property Lot Size","description":"Minimum size of the property lot in sq ft.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Property Lot Size","description":"Minimum size of the property lot in sq ft.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum size of the property lot in sq ft."},"23bd3b75-2f0c-4d95-ba14-9d12b21782bc":{"name":"property_min_story_count","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Property Story Count","description":"Minimum number of property stories.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Property Story Count","description":"Minimum number of property stories.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum number of property stories."},"39387b07-8350-4ff3-a771-6a99cbca14c7":{"name":"property_min_unit_count","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Property Unit Count","description":"Minimum number of property units","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Property Unit Count","description":"Minimum number of property units","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum number of property units"},"970592bf-3e28-4871-aa41-7a44fbe21c6b":{"name":"contractor_classification_derived","in":"query","required":false,"schema":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Contractor Classification Derived","description":"Filter by derived contractor classifications. Use '-' prefix to exclude. Example: ?classification_derived=electrical\u0026classification_derived=-hvac. Returns results containing ALL specified classifications. Possible values: concrete_and_paving, demolition_and_excavation, electrical, fencing_and_glazing, framing_and_carpentry, general_building_contractor, general_engineering_contractor, hvac, landscaping_and_outdoor_work, other, plumbing, roofing, specialty_trades.","uniqueKey":"oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Contractor Classification Derived","description":"Filter by derived contractor classifications. Use '-' prefix to exclude. Example: ?classification_derived=electrical\u0026classification_derived=-hvac. Returns results containing ALL specified classifications. Possible values: concrete_and_paving, demolition_and_excavation, electrical, fencing_and_glazing, framing_and_carpentry, general_building_contractor, general_engineering_contractor, hvac, landscaping_and_outdoor_work, other, plumbing, roofing, specialty_trades.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string[] | null"},"description":"Filter by derived contractor classifications. Use '-' prefix to exclude. Example: ?classification_derived=electrical\u0026classification_derived=-hvac. Returns results containing ALL specified classifications. Possible values: concrete_and_paving, demolition_and_excavation, electrical, fencing_and_glazing, framing_and_carpentry, general_building_contractor, general_engineering_contractor, hvac, landscaping_and_outdoor_work, other, plumbing, roofing, specialty_trades."},"3eb0226b-6cb0-436f-9034-68557bb8a324":{"name":"contractor_name","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Contractor Name","description":"Filter by contractor's name or business name (partial match supported). Must be at least 3 characters — shorter patterns cannot use the trigram index and would force a sequential scan.","minLength":3,"uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Contractor Name","description":"Filter by contractor's name or business name (partial match supported). Must be at least 3 characters — shorter patterns cannot use the trigram index and would force a sequential scan.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"},"description":"Filter by contractor's name or business name (partial match supported). Must be at least 3 characters — shorter patterns cannot use the trigram index and would force a sequential scan."},"6ad8fa58-29e0-4769-a1de-e3ae30e08f7f":{"name":"contractor_website","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Contractor Website","description":"Filter by contractor's website prefix. Surrounding whitespace is trimmed and input is lowercased. Leading http://, https://, and www. prefixes and trailing slashes are removed. Paths are retained. A value that is empty after normalization applies no website filter.","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Contractor Website","description":"Filter by contractor's website prefix. Surrounding whitespace is trimmed and input is lowercased. Leading http://, https://, and www. prefixes and trailing slashes are removed. Paths are retained. A value that is empty after normalization applies no website filter.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"},"description":"Filter by contractor's website prefix. Surrounding whitespace is trimmed and input is lowercased. Leading http://, https://, and www. prefixes and trailing slashes are removed. Paths are retained. A value that is empty after normalization applies no website filter."},"60609aa6-e013-4839-baa1-664b23b877cc":{"name":"contractor_min_total_job_value","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Contractor Total Job Value","description":"Minimum lifetime job value of the contractor, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Contractor Total Job Value","description":"Minimum lifetime job value of the contractor, in cents (e.g. 5000000 = $50,000).","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum lifetime job value of the contractor, in cents (e.g. 5000000 = $50,000)."},"c7f833bf-dd01-499b-b145-5907e55d5b91":{"name":"contractor_min_total_permits_count","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Contractor Permits Count","description":"Minimum lifetime permits count.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Contractor Permits Count","description":"Minimum lifetime permits count.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum lifetime permits count."},"f9edf902-4f04-461b-aded-be267ce9e400":{"name":"contractor_min_inspection_pr","in":"query","required":false,"schema":{"oneOf":[{"type":"integer","title":"Mininum Contractor Inspection Pass Rate","description":"Minimum lifetime inspection pass rate. The value must be an integer between 0 and 100, inclusive.","uniqueKey":"oneOf.0","typeLabel":"integer"},{"type":"null","title":"Mininum Contractor Inspection Pass Rate","description":"Minimum lifetime inspection pass rate. The value must be an integer between 0 and 100, inclusive.","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"integer | null"},"description":"Minimum lifetime inspection pass rate. The value must be an integer between 0 and 100, inclusive."},"c7cbdccf-3406-4dde-804c-547080928bfc":{"name":"contractor_license","in":"query","required":false,"schema":{"oneOf":[{"type":"string","title":"Contractor License","description":"Filter by the contractor's license","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"Contractor License","description":"Filter by the contractor's license","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"},"description":"Filter by the contractor's license"}},"responses":{"7ac465bf-5e3c-4597-aa55-2106bfb7b8d2":{"description":"A list of permits.","content":{"application/json":{"schema":{"properties":{"items":{"items":{"properties":{"property_census_tract":{"oneOf":[{"type":"string","title":"Property Census Tract","description":"The census tract identifier.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_census_tract.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Census Tract","description":"The census tract identifier.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_census_tract.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_census_tract","typeLabel":"string | null"},"property_congressional_district":{"oneOf":[{"type":"string","title":"Property Congressional District","description":"The congressional district identifier.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_congressional_district.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Congressional District","description":"The congressional district identifier.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_congressional_district.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_congressional_district","typeLabel":"string | null"},"property_type":{"oneOf":[{"type":"string","title":"Property Type","description":"The type of property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Type","description":"The type of property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type","typeLabel":"string | null"},"property_type_detail":{"oneOf":[{"type":"string","title":"Property Type Detail","description":"The detail type of property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type_detail.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Type Detail","description":"The detail type of property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type_detail.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_type_detail","typeLabel":"string | null"},"property_legal_owner":{"oneOf":[{"type":"string","title":"Property Legal Owner","description":"The legal owner of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_legal_owner.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Legal Owner","description":"The legal owner of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_legal_owner.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_legal_owner","typeLabel":"string | null"},"property_owner_type":{"oneOf":[{"type":"string","title":"Property Owner Type","description":"The type of property owner.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_owner_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Property Owner Type","description":"The type of property owner.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_owner_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_owner_type","typeLabel":"string | null"},"property_lot_size":{"oneOf":[{"type":"integer","title":"Property Lot Size","description":"The lot size of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_lot_size.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Lot Size","description":"The lot size of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_lot_size.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_lot_size","typeLabel":"integer | null"},"property_building_area":{"oneOf":[{"type":"integer","title":"Property Building Area","description":"The building area of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_building_area.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Building Area","description":"The building area of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_building_area.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_building_area","typeLabel":"integer | null"},"property_story_count":{"oneOf":[{"type":"integer","title":"Property Story Count","description":"The number of stories in the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_story_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Story Count","description":"The number of stories in the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_story_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_story_count","typeLabel":"integer | null"},"property_unit_count":{"oneOf":[{"type":"integer","title":"Property Unit Count","description":"The number of units in the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_unit_count.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Unit Count","description":"The number of units in the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_unit_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_unit_count","typeLabel":"integer | null"},"property_year_built":{"oneOf":[{"type":"integer","title":"Property Year Built","description":"The year the property was built.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_year_built.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Year Built","description":"The year the property was built.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_year_built.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_year_built","typeLabel":"integer | null"},"property_assess_market_value":{"oneOf":[{"type":"integer","title":"Property Assess Market Value","description":"The assessed market value of the property in cents (integer value representing dollars × 100).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_assess_market_value.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Property Assess Market Value","description":"The assessed market value of the property in cents (integer value representing dollars × 100).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_assess_market_value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].property_assess_market_value","typeLabel":"integer | null"},"id":{"type":"string","title":"Id","description":"The permit identifier.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"number":{"type":"string","title":"Number","description":"The permit number provided by the jurisdiction.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].number","typeLabel":"string"},"jurisdiction":{"type":"string","title":"Jurisdiction","description":"The jurisdiction where the permit was filed.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].jurisdiction","typeLabel":"string"},"address":{"oneOf":[{"type":"object","title":"AddressesRead","description":"The address of the property.","properties":{"street_no":{"oneOf":[{"type":"string","title":"Street No","description":"The number of the street of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street_no.oneOf.0","typeLabel":"string"},{"type":"null","title":"Street No","description":"The number of the street of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street_no.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street_no","typeLabel":"string | null"},"street":{"oneOf":[{"type":"string","title":"Street","description":"The name of the street of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street.oneOf.0","typeLabel":"string"},{"type":"null","title":"Street","description":"The name of the street of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.street","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","title":"City","description":"The city of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.city.oneOf.0","typeLabel":"string"},{"type":"null","title":"City","description":"The city of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.city","typeLabel":"string | null"},"county":{"oneOf":[{"type":"string","title":"County","description":"The county of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.county.oneOf.0","typeLabel":"string"},{"type":"null","title":"County","description":"The county of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.county.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.county","typeLabel":"string | null"},"zip_code":{"oneOf":[{"type":"string","title":"Zip Code","description":"The ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Zip Code","description":"The ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code","typeLabel":"string | null"},"zip_code_ext":{"oneOf":[{"type":"string","title":"Zip Code Ext","description":"The extension of the ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code_ext.oneOf.0","typeLabel":"string"},{"type":"null","title":"Zip Code Ext","description":"The extension of the ZIP code of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code_ext.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.zip_code_ext","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","title":"State","description":"The state of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.state.oneOf.0","typeLabel":"string"},{"type":"null","title":"State","description":"The state of the address.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.state","typeLabel":"string | null"},"jurisdiction":{"oneOf":[{"type":"string","title":"Jurisdiction","description":"The jurisdiction the address belongs to.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.jurisdiction.oneOf.0","typeLabel":"string"},{"type":"null","title":"Jurisdiction","description":"The jurisdiction the address belongs to.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.jurisdiction.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.jurisdiction","typeLabel":"string | null"},"latlng":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"number","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng.oneOf.0.items.[INDEX]","typeLabel":"number | null"},"title":"Latlng","description":"The latitude and longitude of the property.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng.oneOf.0","typeLabel":"(number | null)[]"},{"type":"null","title":"Latlng","description":"The latitude and longitude of the property.","uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].address.oneOf.0.latlng","typeLabel":"(number | null)[] | null"}},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].address.oneOf.0","typeLabel":"AddressesRead · object"},{"type":"null","description":"The address of the property.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].address","typeLabel":"AddressesRead · object | null"},"geo_ids":{"oneOf":[{"type":"object","title":"GeoIdsRead","description":"Geographic identifiers.","properties":{"address_id":{"oneOf":[{"type":"string","title":"Address Id","description":"The address identifier.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.address_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Address Id","description":"The address identifier.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.address_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.address_id","typeLabel":"string | null"},"city_id":{"oneOf":[{"type":"string","title":"City Id","description":"The city ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.city_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"City Id","description":"The city ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.city_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.city_id","typeLabel":"string | null"},"county_id":{"oneOf":[{"type":"string","title":"County Id","description":"The county ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.county_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"County Id","description":"The county ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.county_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.county_id","typeLabel":"string | null"},"jurisdiction_id":{"oneOf":[{"type":"string","title":"Jurisdiction Id","description":"The jurisdiction ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.jurisdiction_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Jurisdiction Id","description":"The jurisdiction ID for the address.","uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.jurisdiction_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0.jurisdiction_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.0","typeLabel":"GeoIdsRead · object"},{"type":"null","description":"Geographic identifiers.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].geo_ids.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].geo_ids","typeLabel":"GeoIdsRead · object | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"The description on the permit. This is a free-form text field that can contain any information about the permit.","uniqueKey":"\\items.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"The description on the permit. This is a free-form text field that can contain any information about the permit.","uniqueKey":"\\items.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string | null"},"description_derived":{"oneOf":[{"type":"string","title":"Description Derived","description":"A normalized description inferred from the permit's free-form description, giving a consistent summary of the permitted work.","uniqueKey":"\\items.items.[INDEX].description_derived.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description Derived","description":"A normalized description inferred from the permit's free-form description, giving a consistent summary of the permitted work.","uniqueKey":"\\items.items.[INDEX].description_derived.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].description_derived","typeLabel":"string | null"},"job_value":{"oneOf":[{"type":"integer","title":"Job Value","description":"The reported job value on the permit in cents (integer value representing dollars × 100).","uniqueKey":"\\items.items.[INDEX].job_value.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Job Value","description":"The reported job value on the permit in cents (integer value representing dollars × 100).","uniqueKey":"\\items.items.[INDEX].job_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].job_value","typeLabel":"integer | null"},"type":{"oneOf":[{"type":"string","title":"Type","description":"The type of permit.","uniqueKey":"\\items.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Type","description":"The type of permit.","uniqueKey":"\\items.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].type","typeLabel":"string | null"},"subtype":{"oneOf":[{"type":"string","title":"Subtype","description":"The subtype of permit.","uniqueKey":"\\items.items.[INDEX].subtype.oneOf.0","typeLabel":"string"},{"type":"null","title":"Subtype","description":"The subtype of permit.","uniqueKey":"\\items.items.[INDEX].subtype.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].subtype","typeLabel":"string | null"},"fees":{"oneOf":[{"type":"integer","title":"Fees","description":"The fees charged by the jurisdiction in cents (integer value representing dollars × 100).","uniqueKey":"\\items.items.[INDEX].fees.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Fees","description":"The fees charged by the jurisdiction in cents (integer value representing dollars × 100).","uniqueKey":"\\items.items.[INDEX].fees.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].fees","typeLabel":"integer | null"},"status":{"oneOf":[{"type":"string","title":"Status","description":"The status of the permit.","uniqueKey":"\\items.items.[INDEX].status.oneOf.0","typeLabel":"string"},{"type":"null","title":"Status","description":"The status of the permit.","uniqueKey":"\\items.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].status","typeLabel":"string | null"},"file_date":{"oneOf":[{"type":"string","title":"File Date","description":"The date the permit was filed.","format":"date","uniqueKey":"\\items.items.[INDEX].file_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"File Date","description":"The date the permit was filed.","uniqueKey":"\\items.items.[INDEX].file_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].file_date","typeLabel":"string\u003cdate> | null"},"issue_date":{"oneOf":[{"type":"string","title":"Issue Date","description":"The date the permit was issued.","format":"date","uniqueKey":"\\items.items.[INDEX].issue_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"Issue Date","description":"The date the permit was issued.","uniqueKey":"\\items.items.[INDEX].issue_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].issue_date","typeLabel":"string\u003cdate> | null"},"final_date":{"oneOf":[{"type":"string","title":"Final Date","description":"The date the permit was finalized.","format":"date","uniqueKey":"\\items.items.[INDEX].final_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"Final Date","description":"The date the permit was finalized.","uniqueKey":"\\items.items.[INDEX].final_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].final_date","typeLabel":"string\u003cdate> | null"},"start_date":{"oneOf":[{"type":"string","title":"Start Date","description":"The earliest date out of `file_date`, `issue_date` and `final_date` that's found on the permit, or the date Shovels first saw the permit when it carries none of them.","format":"date","uniqueKey":"\\items.items.[INDEX].start_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"Start Date","description":"The earliest date out of `file_date`, `issue_date` and `final_date` that's found on the permit, or the date Shovels first saw the permit when it carries none of them.","uniqueKey":"\\items.items.[INDEX].start_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].start_date","typeLabel":"string\u003cdate> | null"},"end_date":{"oneOf":[{"type":"string","title":"End Date","description":"The latest date out of `file_date`, `issue_date` and `final_date` that's found on the permit.","format":"date","uniqueKey":"\\items.items.[INDEX].end_date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","title":"End Date","description":"The latest date out of `file_date`, `issue_date` and `final_date` that's found on the permit.","uniqueKey":"\\items.items.[INDEX].end_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].end_date","typeLabel":"string\u003cdate> | null"},"total_duration":{"oneOf":[{"type":"integer","title":"Total Duration","description":"The number of days it took from `start_date` to `end_date`.","uniqueKey":"\\items.items.[INDEX].total_duration.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Total Duration","description":"The number of days it took from `start_date` to `end_date`.","uniqueKey":"\\items.items.[INDEX].total_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].total_duration","typeLabel":"integer | null"},"construction_duration":{"oneOf":[{"type":"integer","title":"Construction Duration","description":"The number of days it took to complete the project.","uniqueKey":"\\items.items.[INDEX].construction_duration.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Construction Duration","description":"The number of days it took to complete the project.","uniqueKey":"\\items.items.[INDEX].construction_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].construction_duration","typeLabel":"integer | null"},"approval_duration":{"oneOf":[{"type":"integer","title":"Approval Duration","description":"The number of days it took to approve the permit.","uniqueKey":"\\items.items.[INDEX].approval_duration.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Approval Duration","description":"The number of days it took to approve the permit.","uniqueKey":"\\items.items.[INDEX].approval_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].approval_duration","typeLabel":"integer | null"},"inspection_pass_rate":{"oneOf":[{"type":"integer","title":"Inspection Pass Rate","description":"The inspection pass rate as a percentage (0-100)","uniqueKey":"\\items.items.[INDEX].inspection_pass_rate.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Inspection Pass Rate","description":"The inspection pass rate as a percentage (0-100)","uniqueKey":"\\items.items.[INDEX].inspection_pass_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].inspection_pass_rate","typeLabel":"integer | null"},"contractor_id":{"oneOf":[{"type":"string","title":"Contractor Id","description":"The contractor identifier.","uniqueKey":"\\items.items.[INDEX].contractor_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Contractor Id","description":"The contractor identifier.","uniqueKey":"\\items.items.[INDEX].contractor_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].contractor_id","typeLabel":"string | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"\\items.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Tags","description":"The tags associated with the permit.","uniqueKey":"\\items.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Tags","description":"The tags associated with the permit.","uniqueKey":"\\items.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].tags","typeLabel":"string[] | null"}},"type":"object","required":["property_census_tract","property_congressional_district","property_type","property_type_detail","property_legal_owner","property_owner_type","property_lot_size","property_building_area","property_story_count","property_unit_count","property_year_built","property_assess_market_value","id","number","jurisdiction","address","geo_ids"],"title":"PermitsRead","description":"Schema for complete permit details in API responses.","uniqueKey":"\\items.items.[INDEX]","typeLabel":"PermitsRead · object"},"type":"array","title":"Items","description":"The list of items returned in the response following given criteria.","isRequired":true,"uniqueKey":"\\items","typeLabel":"PermitsRead · 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"}},"type":"object","required":["items","size","next_cursor"],"title":"PaginatedPermitsResponse","description":"Schema for paginated permits details response.","uniqueKey":"","typeLabel":"PaginatedPermitsResponse · object"},"example":{"items":[{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"caf3b9d5ce317d53","number":"RE2303928","description":"Battery backup","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":500000,"type":"Re) - electrical - 1 \u0026 2 unit residential (building)","fees":61960,"status":"active","file_date":"2023-10-02","issue_date":"2023-10-11","final_date":"2023-12-11","start_date":"2022-10-19","end_date":"2023-12-11","total_duration":230,"construction_duration":61,"approval_duration":9,"inspection_pass_rate":85,"contractor_id":"KOm4dMLIuT","tags":["solar","battery","electrical"],"address":{"street_no":"3360","street":"DWIGHT WAY","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.868443,-122.24374]},"geo_ids":{"address_id":"asd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}},{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"71c02bd70f7ce1c9","number":"E2304692","description":"Install 27 kwh back-up batteries in cabinet ","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":750000,"type":"E) - electrical - 3+ residential units or commercial","fees":61506,"status":"in_review","file_date":"2023-11-29","start_date":"2022-11-29","end_date":"2023-11-29","total_duration":0,"construction_duration":154,"approval_duration":204,"tags":["solar","battery","electrical"],"address":{"street_no":"544","street":"DWIGHT PL","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.8671,-122.24461]},"geo_ids":{"address_id":"1sd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}},{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"9525a96a93e0cdb7","number":"B2303829","description":"Install 27 kwh back-up batteries in cabinet","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":500100,"type":"Building alteration: 3+ residential units or commercial","fees":7953,"status":"in_review","file_date":"2023-11-29","start_date":"2022-11-29","end_date":"2023-11-29","total_duration":0,"construction_duration":154,"approval_duration":204,"tags":["battery","electrical","remodel"],"address":{"street_no":"544","street":"DWIGHT PL","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.8671,-122.24461]},"geo_ids":{"address_id":"1sd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}}],"size":3,"next_cursor":"tfZ.9525a96a93e0cdb7"},"examples":{"Example":{"title":"Example","value":{"items":[{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"caf3b9d5ce317d53","number":"RE2303928","description":"Battery backup","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":500000,"type":"Re) - electrical - 1 \u0026 2 unit residential (building)","fees":61960,"status":"active","file_date":"2023-10-02","issue_date":"2023-10-11","final_date":"2023-12-11","start_date":"2022-10-19","end_date":"2023-12-11","total_duration":230,"construction_duration":61,"approval_duration":9,"inspection_pass_rate":85,"contractor_id":"KOm4dMLIuT","tags":["solar","battery","electrical"],"address":{"street_no":"3360","street":"DWIGHT WAY","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.868443,-122.24374]},"geo_ids":{"address_id":"asd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}},{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"71c02bd70f7ce1c9","number":"E2304692","description":"Install 27 kwh back-up batteries in cabinet ","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":750000,"type":"E) - electrical - 3+ residential units or commercial","fees":61506,"status":"in_review","file_date":"2023-11-29","start_date":"2022-11-29","end_date":"2023-11-29","total_duration":0,"construction_duration":154,"approval_duration":204,"tags":["solar","battery","electrical"],"address":{"street_no":"544","street":"DWIGHT PL","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.8671,-122.24461]},"geo_ids":{"address_id":"1sd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}},{"property_census_tract":"101","property_congressional_district":"1","property_type":"residential","property_type_detail":"single_family_home","property_legal_owner":"OAKLAND HOUSING AUTHORITY","property_owner_type":"private_owner","property_lot_size":4000,"property_building_area":1000,"property_story_count":1,"property_unit_count":1,"property_year_built":1970,"property_assess_market_value":105000000,"id":"9525a96a93e0cdb7","number":"B2303829","description":"Install 27 kwh back-up batteries in cabinet","description_derived":"Battery storage installation","jurisdiction":"Berkeley","job_value":500100,"type":"Building alteration: 3+ residential units or commercial","fees":7953,"status":"in_review","file_date":"2023-11-29","start_date":"2022-11-29","end_date":"2023-11-29","total_duration":0,"construction_duration":154,"approval_duration":204,"tags":["battery","electrical","remodel"],"address":{"street_no":"544","street":"DWIGHT PL","city":"OAKLAND","zip_code":"94704","state":"CA","latlng":[37.8671,-122.24461]},"geo_ids":{"address_id":"1sd8a8b19","city_id":"KLais31","county_id":"ALa2s33","jurisdiction_id":"BLa2s33"}}],"size":3,"next_cursor":"tfZ.9525a96a93e0cdb7"}}},"exampleType":"examples"}},"exampleType":"examples"},"5a44a4dc-04bd-4e46-aba6-356f4c2a6c0b":{"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":{"9b3ebcaa-e4ff-48ca-bb1d-2c47f898fde2":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"APIKeyHeader"}}},"servers":{"7c8afacc-d063-40d4-8924-75c6b5f91dea":{"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":"Search Permits - Shovels Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T15:54:39.147Z","originalFileLocation":"api-reference/permits/search-permits.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=\"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor\u0026#x27;s derived classifications (ALL specified values required).\">\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=\"Search Permits - Shovels Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor\u0026#x27;s derived classifications (ALL specified values required).\">\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/permits/search-permits\">\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=\"Search Permits - Shovels Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor\u0026#x27;s derived classifications (ALL specified values required).\">\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/permits/search-permits\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/permits/search-permits.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/permits/search-permits#webpage\",\"url\":\"https://docs.shovels.ai/api-reference/permits/search-permits\",\"name\":\"Search Permits\",\"description\":\"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor's derived classifications (ALL specified values required).\",\"dateModified\":\"2026-10-19T15:54:39.147Z\",\"isPartOf\":{\"@id\":\"https://docs.shovels.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shovels.ai/api-reference/permits/search-permits#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shovels.ai/api-reference/permits/search-permits#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Shovels Documentation\",\"item\":\"https://docs.shovels.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search Permits\",\"item\":\"https://docs.shovels.ai/api-reference/permits/search-permits\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.shovels.ai/api-reference/permits/search-permits#apireference\",\"headline\":\"Search Permits\",\"name\":\"Search Permits\",\"description\":\"Returns a list of matching permits records. Permits should meet ALL of the parameter filters. Multiple parameters are treated as AND queries. Use contractor_classification_derived to filter by contractor's derived classifications (ALL specified values required).\",\"url\":\"https://docs.shovels.ai/api-reference/permits/search-permits\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shovels.ai/api-reference/permits/search-permits#webpage\"},\"image\":\"https://docs.shovels.ai/assets/shovels-logo.png\",\"dateModified\":\"2026-10-19T15:54:39.147Z\",\"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","description":"How the Shovels API Reference is generated, what it covers, and where to report an error.","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","description":"Returns a list of permits records for given IDs. Results are paginated using cursor-based pagination for efficient navigation.","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","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","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"}]}]},"title":"Search Permits - Shovels Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}