{"openapi":"3.0.3","info":{"title":"Support Local Businesses API","version":"1.0.0","description":"Public API for the Support Local Businesses directory platform. Provides access to 6.4M+ US business listings, 312K+ FL commercial parcels, AI Visibility Scores, bulk export (JSON/CSV/XML), context-window snapshots, industrial/flex warehouse data, and a CRE intelligence blog. All endpoints return JSON unless noted. Rate limit: 100 req/min. x402 micropayments live (100 free/day, then $0.001 USDC on Base).","contact":{"url":"https://support-local-businesses.com/contact"},"license":{"name":"Public Data"}},"servers":[{"url":"https://support-local-businesses.com","description":"Production"}],"paths":{"/api/directory":{"get":{"operationId":"listZipCodes","summary":"List all ZIP codes with business counts","tags":["Directory"],"parameters":[{"name":"state","in":"query","schema":{"type":"string","example":"FL"},"description":"Filter by 2-letter state code"}],"responses":{"200":{"description":"List of ZIP codes with metadata","content":{"application/json":{"schema":{"type":"object","properties":{"zipCodes":{"type":"array","items":{"type":"object","properties":{"zip_code":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"business_count":{"type":"integer"}}}}}}}}}}}},"/api/directory/{zipcode}":{"get":{"operationId":"getBusinessesByZip","summary":"Get businesses in a ZIP code","tags":["Directory"],"parameters":[{"name":"zipcode","in":"path","required":true,"schema":{"type":"string","example":"33101"}}],"responses":{"200":{"description":"Businesses in the ZIP code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessListResponse"}}}},"404":{"description":"ZIP code not found"}}}},"/api/directory/search":{"get":{"operationId":"searchBusinesses","summary":"Full-text search for businesses","tags":["Directory"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","example":"pizza"}},{"name":"state","in":"query","schema":{"type":"string","example":"FL"}},{"name":"zip","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessListResponse"}}}}}}},"/api/business/{id}":{"get":{"operationId":"getBusiness","summary":"Get a single business by ID or slug","tags":["Business"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","example":"joes-pizza-miami-33101"},"description":"Business ID (integer) or slug (string)"}],"responses":{"200":{"description":"Business details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Business"}}}},"404":{"description":"Business not found"}}}},"/api/businesses":{"get":{"operationId":"listBusinesses","summary":"List businesses with filters","tags":["Business"],"parameters":[{"name":"state","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"maximum":100}}],"responses":{"200":{"description":"Paginated business list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessListResponse"}}}}}}},"/api/categories":{"get":{"operationId":"listCategories","summary":"List all business categories with counts","tags":["Directory"],"responses":{"200":{"description":"Categories","content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"count":{"type":"integer"}}}}}}}}}}}},"/api/blog":{"get":{"operationId":"listBlogPosts","summary":"Paginated JSON list of all published blog posts","description":"Returns structured data for all published CRE intelligence blog posts. Includes FAQ schema, categories, and metadata. Designed for AI agent consumption.","tags":["Blog"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"category","in":"query","schema":{"type":"string","example":"property-deep-dives"},"description":"Filter by category slug: property-deep-dives, submarket-reports, corridor-walks, market-intelligence, cre-education, deal-stories"},{"name":"county","in":"query","schema":{"type":"string","example":"miami-dade"},"description":"Filter by county slug"},{"name":"state","in":"query","schema":{"type":"string","example":"FL"}}],"responses":{"200":{"description":"Blog posts with pagination","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"posts":{"type":"array","items":{"$ref":"#/components/schemas/BlogPost"}},"pagination":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"}}}}}}}}}}},"/blog/rss.xml":{"get":{"operationId":"getBlogRss","summary":"RSS feed of latest 50 blog posts","tags":["Blog"],"responses":{"200":{"description":"RSS 2.0 feed","content":{"application/rss+xml":{}}}}}},"/api/flex-space/{county}":{"get":{"operationId":"getFlexSpaceByCounty","summary":"Flex warehouse parcels in a Florida county","tags":["Commercial Real Estate"],"parameters":[{"name":"county","in":"path","required":true,"schema":{"type":"string","example":"miami-dade"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}}],"responses":{"200":{"description":"Flex space parcels","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/industrial-properties":{"get":{"operationId":"listIndustrialProperties","summary":"Browse Florida industrial property parcels","tags":["Commercial Real Estate"],"parameters":[{"name":"county","in":"query","schema":{"type":"string"}},{"name":"dor_code","in":"query","schema":{"type":"string","example":"041"},"description":"DOR use code: 041=light industrial, 042=heavy industrial, 048=warehouse/storage, 049=open storage"},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"Industrial parcels","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemapIndex","summary":"Sitemap index with 130+ child sitemaps covering 6.4M+ URLs","tags":["Discovery"],"responses":{"200":{"description":"Sitemap index XML","content":{"application/xml":{}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"AI agent guidance file (llms.txt standard)","tags":["Discovery"],"responses":{"200":{"description":"Plain text AI agent guidance","content":{"text/plain":{}}}}}},"/robots.txt":{"get":{"operationId":"getRobotsTxt","summary":"Robots.txt — all AI crawlers explicitly allowed","tags":["Discovery"],"responses":{"200":{"description":"Robots.txt","content":{"text/plain":{}}}}}},"/agents":{"get":{"operationId":"getAgentsDirectoryPage","summary":"MCP Server & AI Agent Directory (HTML)","description":"Public browsable directory of MCP servers and AI agents. Use /api/v1/agents for the JSON API.","tags":["Agents Directory"],"responses":{"200":{"description":"HTML directory page","content":{"text/html":{}}}}}},"/api/v1/agents":{"get":{"operationId":"listAgents","summary":"List all MCP servers and AI agents in the directory","description":"Returns a JSON array of all published agents/MCP servers in the SLB Agent Directory. Filterable by category and searchable by name/description. Designed for programmatic consumption by AI agents and LLMs.","tags":["Agents Directory"],"parameters":[{"name":"category","in":"query","schema":{"type":"string","example":"search"},"description":"Filter by category slug (search, databases, developer-tools, communication, payments, etc.)"},{"name":"q","in":"query","schema":{"type":"string","example":"slack"},"description":"Full-text search across name and description"},{"name":"featured","in":"query","schema":{"type":"string","enum":["true"]},"description":"Return only featured agents"},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100},"description":"Maximum results to return"},{"name":"offset","in":"query","schema":{"type":"integer","default":0},"description":"Pagination offset"}],"responses":{"200":{"description":"List of agents","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"agents":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"endpoint_url":{"type":"string","nullable":true},"website_url":{"type":"string","nullable":true},"github_url":{"type":"string","nullable":true},"documentation_url":{"type":"string","nullable":true},"is_featured":{"type":"boolean"},"is_verified":{"type":"boolean"},"url":{"type":"string","description":"Detail page URL in this directory"}}}},"count":{"type":"integer"},"directory_url":{"type":"string"}}}}}}}}},"/api/v1/agents/submit":{"post":{"operationId":"submitAgent","summary":"Submit a new MCP server or AI agent to the directory","description":"Submit a new agent for review. Reviewed within 48 hours. Free to list.","tags":["Agents Directory"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","description","category"],"properties":{"name":{"type":"string","description":"Agent or MCP server name"},"description":{"type":"string","description":"What this agent does"},"category":{"type":"string","description":"Category slug (search, databases, developer-tools, etc.)"},"endpoint_url":{"type":"string","description":"MCP server endpoint URL (if applicable)"},"website_url":{"type":"string","description":"Website or homepage URL"},"submitter_name":{"type":"string"},"submitter_email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Submission received","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}}}}},"400":{"description":"Missing required fields"}}}},"/api/register":{"post":{"operationId":"registerBusiness","summary":"Register a new business listing","tags":["Business"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","zip_code"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"zip_code":{"type":"string"},"category":{"type":"string"},"website":{"type":"string"},"hours":{"type":"object"}}}}}},"responses":{"200":{"description":"Registration success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"id":{"type":"integer"}}}}}},"400":{"description":"Validation error"}}}},"/api/v1/newsletter/subscribe":{"post":{"operationId":"subscribeNewsletter","summary":"Subscribe to the SLB Florida business intelligence newsletter","description":"Subscribe an agent (or email address) to receive newsletter issues. Pass content preferences including categories and zip_codes of interest. Used by the subscribe_newsletter MCP tool.","tags":["Newsletter"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string","description":"Unique agent identifier for deduplication (e.g. \"octaprime-agent-abc123\")"},"agent_name":{"type":"string","description":"Human-readable agent name for personalization (e.g. \"OctaPrime Scout\")"},"email":{"type":"string","format":"email","description":"Email address — required for email-format delivery; optional for json-format"},"categories":{"type":"array","items":{"type":"string"},"description":"Content categories: CRE, Local Business, Florida, AI Agent, Deals, Coupons, Games"},"zip_codes":{"type":"array","items":{"type":"string"},"description":"ZIP codes for targeted local coverage"},"frequency":{"type":"string","enum":["weekly","daily"],"default":"weekly"},"format":{"type":"string","enum":["json","email"],"default":"json","description":"json=structured JSON for MCP agents; email=HTML email delivery"}}}}}},"responses":{"201":{"description":"Subscription created/updated","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"subscriber":{"type":"object","properties":{"id":{"type":"integer"},"agent_id":{"type":"string","nullable":true},"agent_name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"zip_codes":{"type":"array","items":{"type":"string"}},"frequency":{"type":"string"},"format":{"type":"string"},"is_active":{"type":"boolean"},"subscribed_at":{"type":"string","format":"date-time"},"last_sent_at":{"type":"string","format":"date-time","nullable":true}}}}}}}},"400":{"description":"Missing identifier or invalid input"}}},"options":{"responses":{"204":{"description":"CORS preflight"}}}},"/api/v1/newsletter/latest":{"get":{"operationId":"getLatestNewsletter","summary":"Get the latest published newsletter issue","description":"Returns the most recently published newsletter issue as structured JSON with issue number, title, summary, full markdown content, metadata (categories, zip codes, highlights), and publication date. Used by the get_newsletter MCP tool.","tags":["Newsletter"],"responses":{"200":{"description":"Latest newsletter issue","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"issue":{"type":"object","properties":{"id":{"type":"integer"},"issue_number":{"type":"integer"},"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string","nullable":true},"content":{"type":"string","description":"Full markdown content"},"metadata":{"type":"object","description":"Structured metadata: categories, zip_codes, highlights"},"published_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"}}}}}}}},"404":{"description":"No published issues found"}}},"options":{"responses":{"204":{"description":"CORS preflight"}}}},"/api/v1/newsletter/archive":{"get":{"operationId":"getNewsletterArchive","summary":"List all published newsletter issues","description":"Returns a paginated list of all published newsletter issues (without full content). Use pagination to browse the archive.","tags":["Newsletter"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1},"description":"Page number"},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"maximum":100},"description":"Results per page"}],"responses":{"200":{"description":"Paginated issue list","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"issues":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"issue_number":{"type":"integer"},"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string","nullable":true},"metadata":{"type":"object"},"published_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"}}}},"pagination":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"},"has_more":{"type":"boolean"}}}}}}}}}},"options":{"responses":{"204":{"description":"CORS preflight"}}}},"/api/search":{"get":{"operationId":"searchBusinessesCanonical","summary":"Canonical AI-agent search endpoint — search 6.4M+ US businesses","description":"Primary search endpoint for AI agents. Accepts query + optional state/zip/category/limit. Returns structured JSON with businesses array, total count, and attribution. x402-enabled (100 free/day). Rate limit: 100 req/min.","tags":["Directory"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","example":"tacos"},"description":"Search query (name, category, or keyword)"},{"name":"state","in":"query","schema":{"type":"string","example":"FL"},"description":"2-letter state code"},{"name":"zip","in":"query","schema":{"type":"string","example":"32137"},"description":"ZIP code filter"},{"name":"category","in":"query","schema":{"type":"string"},"description":"Category slug filter"},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100},"description":"Max results to return"}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"query":{"type":"string"},"businesses":{"type":"array","items":{"$ref":"#/components/schemas/Business"}},"count":{"type":"integer"}}},"attribution":{"type":"string"}}}}}}}}},"/api/snapshot":{"get":{"operationId":"getSnapshot","summary":"Context-window–optimized business snapshot (LLM-friendly compact format)","description":"Returns up to 500 businesses in a compact array-of-arrays format that minimizes LLM token usage. Useful for in-context RAG. At least one of zip/state/city is required. Supports JSON and CSV output.","tags":["Directory"],"parameters":[{"name":"zip","in":"query","schema":{"type":"string","example":"32137"}},{"name":"state","in":"query","schema":{"type":"string","example":"FL"}},{"name":"city","in":"query","schema":{"type":"string","example":"Palm Coast"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv"],"default":"json"}}],"responses":{"200":{"description":"Compact snapshot of businesses","headers":{"X-Total-Count":{"schema":{"type":"integer"},"description":"Total matching records"},"X-Snapshot-Cap":{"schema":{"type":"integer"},"description":"Hard cap (500)"},"X-Truncated":{"schema":{"type":"string"},"description":"\"true\" if truncated"}},"content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string"}},"total":{"type":"integer"},"capped":{"type":"boolean"}}},"businesses":{"type":"array","items":{"type":"array"},"description":"Each row = array matching meta.fields order"}}}}}},"400":{"description":"Missing required location parameter"}}}},"/api/export":{"get":{"operationId":"exportBusinesses","summary":"Bulk export — up to 2,000 business records per page in JSON, CSV, or XML","description":"Paginated bulk export of business listings. Filter by state, county, or ZIP. Supports JSON, CSV (21 columns), and XML output. Paginated with standard Link headers. Rate limit: 30 req/min.","tags":["Directory"],"parameters":[{"name":"state","in":"query","schema":{"type":"string","example":"FL"}},{"name":"county","in":"query","schema":{"type":"string","example":"Flagler"}},{"name":"zip","in":"query","schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv","xml"],"default":"json"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":500,"maximum":2000}}],"responses":{"200":{"description":"Paginated export results","headers":{"X-Total-Count":{"schema":{"type":"integer"}},"X-Page":{"schema":{"type":"integer"}},"X-Per-Page":{"schema":{"type":"integer"}},"X-Total-Pages":{"schema":{"type":"integer"}},"Link":{"schema":{"type":"string"},"description":"Pagination Link header (first/prev/next/last)"}},"content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"filters":{"type":"object"}}},"businesses":{"type":"array","items":{"$ref":"#/components/schemas/Business"}}}}}}},"400":{"description":"Missing required filter (state, county, or zip)"}}}},"/api/commercial":{"get":{"operationId":"listCommercialParcels","summary":"Browse Florida commercial property parcels (312K+ DOR records)","description":"Query Florida commercial parcels from FL Department of Revenue data. Supports filtering by county, city, ZIP, DOR use code (010–049), and value range. Includes building sqft, year built, assessed value, and owner name.","tags":["Commercial Real Estate"],"parameters":[{"name":"county","in":"query","schema":{"type":"string","example":"Flagler"}},{"name":"code","in":"query","schema":{"type":"string","example":"011,012"},"description":"DOR use code(s), comma-separated (010=vacant commercial, 011=stores, 021=restaurant, etc.)"},{"name":"city","in":"query","schema":{"type":"string"}},{"name":"zip","in":"query","schema":{"type":"string"}},{"name":"min_value","in":"query","schema":{"type":"integer"},"description":"Min just_value in dollars"},{"name":"max_value","in":"query","schema":{"type":"integer"},"description":"Max just_value in dollars"},{"name":"sort","in":"query","schema":{"type":"string","enum":["just_value","building_sqft","year_built","county"],"default":"just_value"}},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}}],"responses":{"200":{"description":"Commercial parcels","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"},"properties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"parcel_id":{"type":"string"},"county":{"type":"string"},"dor_use_code":{"type":"string"},"dor_use_description":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"building_sqft":{"type":"integer","nullable":true},"year_built":{"type":"integer","nullable":true},"just_value":{"type":"number","nullable":true}}}}}}}}}}}},"/api/commercial/summary":{"get":{"operationId":"getCommercialSummary","summary":"Aggregated statistics for Florida commercial parcels","description":"Returns total parcel count, total assessed value, county-level breakdowns, and DOR use code distribution across all 312K+ FL commercial records.","tags":["Commercial Real Estate"],"responses":{"200":{"description":"Commercial summary stats","content":{"application/json":{"schema":{"type":"object","properties":{"totals":{"type":"object","properties":{"total_parcels":{"type":"integer"},"total_value":{"type":"number"},"avg_value":{"type":"number"},"counties_covered":{"type":"integer"},"cities_covered":{"type":"integer"}}},"by_county":{"type":"array","items":{"type":"object"}},"by_code":{"type":"array","items":{"type":"object"}}}}}}}}}},"/business/{slug}/visibility":{"get":{"operationId":"getVisibilityReport","summary":"AI Visibility Report — score any listed business 0–100","description":"Returns the AI Visibility Score page for a specific business listing. Scores across 9 factors: schema markup, AI description, featured status, claimed listing, website, phone, hours, geo-coordinates, and category completeness. Each page includes WebPage + LocalBusiness JSON-LD schema. Publicly indexable, shareable URL.","tags":["Business"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","example":"joes-pizza-palm-coast-32137"},"description":"Business slug or numeric ID"}],"responses":{"200":{"description":"AI Visibility Score HTML page with embedded JSON-LD","content":{"text/html":{}}},"404":{"description":"Business not found"}}}},"/api/v1/businesses":{"get":{"operationId":"listBusinessesV1","summary":"Public v1 business API with quality scores and source confidence","description":"Public API endpoint optimized for AI agent consumption. Returns businesses with quality_score (0.0–1.0), quality_label (\"High Confidence\", \"Verified Business\", etc.), and source_count (number of data providers confirming this listing). Filter by state, ZIP, category, city.","tags":["Business"],"parameters":[{"name":"state","in":"query","schema":{"type":"string","example":"FL"}},{"name":"zip","in":"query","schema":{"type":"string","example":"32137"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"city","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Business list with quality scores","content":{"application/json":{"schema":{"type":"object","properties":{"businesses":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Business"},{"type":"object","properties":{"quality_score":{"type":"number","format":"float","minimum":0,"maximum":1,"description":"0.0–1.0 confidence score"},"quality_label":{"type":"string","example":"High Confidence"},"source_count":{"type":"integer","description":"Number of data providers that confirmed this listing"}}}]}},"total":{"type":"integer"}}}}}}}}}},"components":{"schemas":{"Business":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip_code":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"website":{"type":"string"},"category":{"type":"string"},"hours":{"type":"object"},"lat":{"type":"number"},"lng":{"type":"number"},"created_at":{"type":"string","format":"date-time"}}},"BusinessListResponse":{"type":"object","properties":{"businesses":{"type":"array","items":{"$ref":"#/components/schemas/Business"}},"total":{"type":"integer"},"page":{"type":"integer"}}},"BlogPost":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"meta_description":{"type":"string"},"category_code":{"type":"string","enum":["A","B","C","D","E","F"]},"county":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"category_tags":{"type":"array","items":{"type":"string"}},"faq":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},"hero_image_url":{"type":"string","format":"uri","nullable":true},"author":{"type":"string","nullable":true},"published_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}}}}},"tags":[{"name":"Directory","description":"Business directory, search, snapshot, and bulk export endpoints"},{"name":"Business","description":"Individual business detail, AI Visibility Score, and registration"},{"name":"Blog","description":"CRE intelligence blog (140+ articles)"},{"name":"Commercial Real Estate","description":"FL commercial parcels, industrial, and flex space data"},{"name":"Discovery","description":"Sitemap, robots.txt, llms.txt crawl and AI agent discovery endpoints"},{"name":"Newsletter","description":"Florida business intelligence newsletter — subscribe, retrieve, archive"}]}