{"openapi":"3.1.0","info":{"title":"Reed Graff North Texas Dealerships & Agent API","version":"1.0.0","description":"Public REST & MCP endpoints for searching 2,200+ live Chevrolet, Mazda, Cadillac, and pre-owned vehicles across McKinney, Sherman, and Grand Prairie, TX, and checking real-time Calendly test-drive slots."},"servers":[{"url":"https://api.reedgraff.com","description":"Production API"}],"tags":[{"name":"inventory","description":"Search live NHTSA-decoded Chevrolet, Mazda, Cadillac & pre-owned inventory across McKinney, Sherman, and Grand Prairie, lookup individual vehicles by {VIN}-{YYYY-MM-DD}, VIN, or Stock #, and pull the Google/Bing Vehicle Ads TSV feed."},{"name":"schedule","description":"Real-time live Calendly test-drive & showroom visit slots with Reed Graff (never cached at start of day)."},{"name":"dealerships","description":"North Texas dealership locations, addresses, brands, hours, and OpenAPI 3.1 schema."},{"name":"book","description":"Chronological North Texas customer vehicle deliveries with Reed Graff."},{"name":"social_posts","description":"Educational automotive finance & dealership videos and spoken transcripts (@itsreedgraff)."},{"name":"inquiries","description":"Direct VinSolutions ADF 1.0 XML lead submission assigned to Reed Graff (protected by Cloudflare Turnstile)."},{"name":"mcp","description":"Remote Model Context Protocol (MCP) Streamable HTTP server for AI agents."}],"paths":{"/book":{"get":{"tags":["book"],"summary":"List Customer Book","description":"Return sanitized customer delivery entries from Firestore (strictly excluding private CRM fields).","operationId":"list_customer_book_book_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerBookResponse"}}}}}}},"/book/photo/{entry_id}/{photo_idx}":{"get":{"tags":["book"],"summary":"Get Customer Book Photo","description":"Serve EXIF-stripped customer delivery JPEG from backend cache without exposing Google Photos links.\nSupports optional ?w=64 (low-res preview) or ?w=640 (card size) or full 1600px default.","operationId":"get_customer_book_photo_book_photo__entry_id___photo_idx__get","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}},{"name":"photo_idx","in":"path","required":true,"schema":{"type":"integer","title":"Photo Idx"}},{"name":"w","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"W"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp":{"get":{"tags":["mcp"],"summary":"Mcp Server Manifest","description":"Human- and agent-readable manifest for the Reed Graff Dealership Streamable HTTP MCP server.\nConnect MCP clients via POST /mcp (JSON-RPC 2.0 Streamable HTTP).","operationId":"mcp_server_manifest_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["mcp"],"summary":"Mcp Jsonrpc Endpoint","description":"Model Context Protocol (MCP) Streamable HTTP JSON-RPC 2.0 endpoint.\nSupports initialize, tools/list, tools/call, resources/list, resources/read, and ping.","operationId":"mcp_jsonrpc_endpoint_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dealerships":{"get":{"tags":["dealerships"],"summary":"List Dealership Locations","description":"Return store locations, Google Maps links, brands carried, hours, and desk contact info\nfor Reed Graff's three family-owned North Texas dealerships.","operationId":"list_dealership_locations_dealerships_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response List Dealership Locations Dealerships Get"}}}}}}},"/dealerships/openapi.json":{"get":{"tags":["dealerships"],"summary":"Get Dealership Openapi Spec","description":"Public OpenAPI 3.1 specification scoped strictly to Reed Graff's North Texas Dealership,\nInventory, Real-Time Calendly Scheduling, and MCP endpoints.","operationId":"get_dealership_openapi_spec_dealerships_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Get Dealership Openapi Spec Dealerships Openapi Json Get"}}}}}}},"/schedule/slots":{"get":{"tags":["schedule"],"summary":"Get Live Test Drive Slots","description":"Query Reed Graff's live real-time Calendly test-drive & appointment availability.\nFetched directly from Calendly on every call (never pre-scraped or cached) so newly\nbooked slots disappear immediately.","operationId":"get_live_test_drive_slots_schedule_slots_get","parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date in YYYY-MM-DD format (defaults to today in America/Chicago)","title":"Start Date"},"description":"Start date in YYYY-MM-DD format (defaults to today in America/Chicago)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":14,"minimum":1,"description":"Number of calendar days ahead to query (1 to 14)","default":7,"title":"Days"},"description":"Number of calendar days ahead to query (1 to 14)"},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","description":"IANA timezone name for returned start_time slots","default":"America/Chicago","title":"Timezone"},"description":"IANA timezone name for returned start_time slots"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional buyer name to pre-fill on booking links","title":"Name"},"description":"Optional buyer name to pre-fill on booking links"},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional buyer email to pre-fill on booking links","title":"Email"},"description":"Optional buyer email to pre-fill on booking links"},{"name":"phone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional buyer phone number to pre-fill on booking links","title":"Phone"},"description":"Optional buyer phone number to pre-fill on booking links"},{"name":"vehicle_note","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional VIN, stock #, or vehicle model to pre-fill on booking links","title":"Vehicle Note"},"description":"Optional VIN, stock #, or vehicle model to pre-fill on booking links"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social_posts":{"get":{"tags":["social_posts"],"summary":"List Social Posts","description":"Return Reed's aggregated social media posts and profile links from Firestore.","operationId":"list_social_posts_social_posts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialFeedResponse"}}}}}}},"/inquiries":{"post":{"tags":["inquiries"],"summary":"Submit Vehicle Inquiry","description":"Accept a customer vehicle inquiry, queue VinSolutions ADF delivery + Firestore write\nin the background, and immediately return the inquiry reference ID.","operationId":"submit_vehicle_inquiry_inquiries_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VehicleInquiryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/inventory":{"get":{"tags":["inventory"],"summary":"List Inventory","description":"List and filter live vehicles across El Dorado Chevrolet Mazda (McKinney, TX),\nSherman Chevrolet Cadillac (Sherman, TX), and Graff Chevrolet (Grand Prairie, TX).","operationId":"list_inventory_inventory_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Keyword search across year, make, model, trim, VIN, stock #, color, or city","title":"Q"},"description":"Keyword search across year, make, model, trim, VIN, stock #, color, or city"},{"name":"make","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Exact make filter (e.g. Chevrolet, Mazda, Cadillac)","title":"Make"},"description":"Exact make filter (e.g. Chevrolet, Mazda, Cadillac)"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model substring filter (e.g. CX-50, Silverado 1500, Escalade)","title":"Model"},"description":"Model substring filter (e.g. CX-50, Silverado 1500, Escalade)"},{"name":"body_style","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Body style (SUV, Truck, Sedan, Coupe, Convertible, Hatchback, Van)","title":"Body Style"},"description":"Body style (SUV, Truck, Sedan, Coupe, Convertible, Hatchback, Van)"},{"name":"condition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Vehicle condition (New, Certified Used, or Used)","title":"Condition"},"description":"Vehicle condition (New, Certified Used, or Used)"},{"name":"dealer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Store name or city (McKinney, Sherman, Grand Prairie, El Dorado, Graff)","title":"Dealer"},"description":"Store name or city (McKinney, Sherman, Grand Prairie, El Dorado, Graff)"},{"name":"min_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Minimum model year","title":"Min Year"},"description":"Minimum model year"},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum net price in USD (automatically includes $1,000 aged discount)","title":"Max Price"},"description":"Maximum net price in USD (automatically includes $1,000 aged discount)"},{"name":"max_mileage","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Maximum odometer reading in miles","title":"Max Mileage"},"description":"Maximum odometer reading in miles"},{"name":"aged_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only return vehicles 200+ days on lot eligible for $1,000 off with Reed","default":false,"title":"Aged Only"},"description":"Only return vehicles 200+ days on lot eligible for $1,000 off with Reed"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: price_asc, price_desc, year_desc, or aged_desc","title":"Sort"},"description":"Sort order: price_asc, price_desc, year_desc, or aged_desc"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2500,"minimum":1},{"type":"null"}],"description":"Maximum vehicles to return","title":"Limit"},"description":"Maximum vehicles to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Pagination offset","default":0,"title":"Offset"},"description":"Pagination offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InventoryListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/inventory/feeds/google-vehicles.tsv":{"get":{"tags":["inventory"],"summary":"Get Google Vehicle Ads Feed","description":"Live tab-separated (TSV) automotive inventory feed formatted for Google Merchant Center\nVehicle Listings and Microsoft Bing Automotive Ads. Uses {VIN}-{YYYY-MM-DD} (stocked_at date)\nas unique offer ID so repeat lease-returns / resold trade-ins years later never collide.","operationId":"get_google_vehicle_ads_feed_inventory_feeds_google_vehicles_tsv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/inventory/sold":{"get":{"tags":["inventory"],"summary":"List Sold Inventory Archive","description":"Return lightweight index of permanently archived sold vehicle turns ({VIN}-{YYYY-MM-DD})\nfor SEO sitemaps, crawlable archive pages, and AEO historical inventory lookups.","operationId":"list_sold_inventory_archive_inventory_sold_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50000,"minimum":1,"default":5000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/inventory/{vehicle_key}":{"get":{"tags":["inventory"],"summary":"Get Inventory Vehicle","description":"Look up a single vehicle by {VIN}-{YYYY-MM-DD}, 17-character VIN, or Stock # (including archived sold turns).","operationId":"get_inventory_vehicle_inventory__vehicle_key__get","parameters":[{"name":"vehicle_key","in":"path","required":true,"schema":{"type":"string","title":"Vehicle Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ApplicationType":{"type":"string","enum":["serious","unserious"],"title":"ApplicationType"},"AssetType":{"type":"string","enum":["model","pile"],"title":"AssetType"},"BlogPost":{"properties":{"id":{"type":"string","title":"Id"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"date":{"type":"string","title":"Date"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"type":{"type":"string","const":"blog","title":"Type","default":"blog"},"public":{"type":"boolean","title":"Public","default":false}},"type":"object","required":["id","date","title"],"title":"BlogPost"},"BlogPostBasicInfo":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"blog","title":"Type","default":"blog"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"date":{"type":"string","title":"Date"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"public":{"type":"boolean","title":"Public","default":false}},"type":"object","required":["id","title","description","date","tags"],"title":"BlogPostBasicInfo"},"Body_upload_normal_encoded_file_transfer_upload_normal_post":{"properties":{"subject":{"type":"string","title":"Subject"},"body":{"type":"string","title":"Body"},"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["subject","body"],"title":"Body_upload_normal_encoded_file_transfer_upload_normal_post"},"CalendlyDayAvailability":{"properties":{"date":{"type":"string","title":"Date"},"slot_count":{"type":"integer","title":"Slot Count"},"slots":{"items":{"$ref":"#/components/schemas/CalendlySlotItem"},"type":"array","title":"Slots"}},"type":"object","required":["date","slot_count","slots"],"title":"CalendlyDayAvailability"},"CalendlySlotItem":{"properties":{"start_time":{"type":"string","title":"Start Time"},"display_time":{"type":"string","title":"Display Time"},"booking_url":{"type":"string","title":"Booking Url"}},"type":"object","required":["start_time","display_time","booking_url"],"title":"CalendlySlotItem"},"CreateUserRequest":{"properties":{"turnstile_token":{"type":"string","title":"Turnstile Token"},"invite_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invite Token"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"type":"object","required":["turnstile_token"],"title":"CreateUserRequest"},"CustomSocialPostRequest":{"properties":{"platform":{"$ref":"#/components/schemas/SocialPlatform"},"title":{"type":"string","title":"Title"},"caption":{"type":"string","title":"Caption","default":""},"transcript":{"type":"string","title":"Transcript","default":""},"duration_seconds":{"type":"integer","title":"Duration Seconds","default":0},"url":{"type":"string","title":"Url"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published At"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"video_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Path"},"is_vertical":{"type":"boolean","title":"Is Vertical","default":false},"cross_links":{"additionalProperties":{"type":"string"},"type":"object","title":"Cross Links"}},"type":"object","required":["platform","title","url"],"title":"CustomSocialPostRequest"},"CustomerBookResponse":{"properties":{"entries":{"items":{"type":"object"},"type":"array","title":"Entries"},"total_count":{"type":"integer","title":"Total Count"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["entries","total_count"],"title":"CustomerBookResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InquiryContactMethod":{"type":"string","enum":["phone","text","email"],"title":"InquiryContactMethod"},"InquiryType":{"type":"string","enum":["vehicle","test_drive","trade_in","general"],"title":"InquiryType"},"InventoryListResponse":{"properties":{"vehicles":{"items":{"type":"object"},"type":"array","title":"Vehicles"},"total_matched":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Matched"},"returned_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Returned Count"},"snapshot":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Snapshot"}},"type":"object","required":["vehicles"],"title":"InventoryListResponse"},"LiveScheduleResponse":{"properties":{"event_name":{"type":"string","title":"Event Name"},"duration_minutes":{"type":"integer","title":"Duration Minutes"},"location":{"type":"string","title":"Location"},"scheduling_url":{"type":"string","title":"Scheduling Url"},"timezone":{"type":"string","title":"Timezone"},"range_start":{"type":"string","title":"Range Start"},"range_end":{"type":"string","title":"Range End"},"fetched_live_at":{"type":"string","title":"Fetched Live At"},"total_available_slots":{"type":"integer","title":"Total Available Slots"},"days":{"items":{"$ref":"#/components/schemas/CalendlyDayAvailability"},"type":"array","title":"Days"}},"type":"object","required":["event_name","duration_minutes","location","scheduling_url","timezone","range_start","range_end","fetched_live_at","total_available_slots","days"],"title":"LiveScheduleResponse"},"ModelProject":{"properties":{"id":{"type":"string","title":"Id"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"date":{"type":"string","title":"Date"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"type":{"type":"string","const":"project","title":"Type","default":"project"},"path":{"type":"string","title":"Path","default":""},"elo":{"type":"integer","title":"Elo","default":0},"asset_type":{"type":"string","const":"model","title":"Asset Type","default":"model"},"scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Scale","default":0.35},"positionY":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Positiony","default":-25},"rotationY":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rotationy","default":-1}},"type":"object","required":["id","date","title"],"title":"ModelProject"},"PileProject":{"properties":{"id":{"type":"string","title":"Id"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"date":{"type":"string","title":"Date"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"type":{"type":"string","const":"project","title":"Type","default":"project"},"path":{"type":"string","title":"Path","default":""},"elo":{"type":"integer","title":"Elo","default":0},"asset_type":{"type":"string","const":"pile","title":"Asset Type","default":"pile"},"scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Scale","default":0.35},"positionY":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Positiony","default":-25},"rotationY":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rotationy","default":-1},"number":{"type":"integer","title":"Number"},"spawnDelay":{"type":"integer","title":"Spawndelay"}},"type":"object","required":["id","date","title","number","spawnDelay"],"title":"PileProject"},"PlaceType":{"type":"string","enum":["car_dealer","car_rental","car_repair","car_wash","electric_vehicle_charging_station","gas_station","parking","rest_stop","corporate_office","farm","ranch","art_gallery","art_studio","auditorium","cultural_landmark","historical_place","monument","museum","performing_arts_theater","sculpture","library","preschool","primary_school","school","secondary_school","university","adventure_sports_center","amphitheatre","amusement_center","amusement_park","aquarium","banquet_hall","barbecue_area","botanical_garden","bowling_alley","casino","childrens_camp","comedy_club","community_center","concert_hall","convention_center","cultural_center","cycling_park","dance_hall","dog_park","event_venue","ferris_wheel","garden","hiking_area","historical_landmark","internet_cafe","karaoke","marina","movie_rental","movie_theater","national_park","night_club","observation_deck","off_roading_area","opera_house","park","philharmonic_hall","picnic_ground","planetarium","plaza","roller_coaster","skateboard_park","state_park","tourist_attraction","video_arcade","visitor_center","water_park","wedding_venue","wildlife_park","wildlife_refuge","zoo","public_bath","public_bathroom","stable","accounting","atm","bank","acai_shop","afghani_restaurant","african_restaurant","american_restaurant","asian_restaurant","bagel_shop","bakery","bar","bar_and_grill","barbecue_restaurant","brazilian_restaurant","breakfast_restaurant","brunch_restaurant","buffet_restaurant","cafe","cafeteria","candy_store","cat_cafe","chinese_restaurant","chocolate_factory","chocolate_shop","coffee_shop","confectionery","deli","dessert_restaurant","dessert_shop","diner","dog_cafe","donut_shop","fast_food_restaurant","fine_dining_restaurant","food_court","french_restaurant","greek_restaurant","hamburger_restaurant","ice_cream_shop","indian_restaurant","indonesian_restaurant","italian_restaurant","japanese_restaurant","juice_shop","korean_restaurant","lebanese_restaurant","meal_delivery","meal_takeaway","mediterranean_restaurant","mexican_restaurant","middle_eastern_restaurant","pizza_restaurant","pub","ramen_restaurant","restaurant","sandwich_shop","seafood_restaurant","spanish_restaurant","steak_house","sushi_restaurant","tea_house","thai_restaurant","turkish_restaurant","vegan_restaurant","vegetarian_restaurant","vietnamese_restaurant","wine_bar","administrative_area_level_1","administrative_area_level_2","country","locality","postal_code","school_district","city_hall","courthouse","embassy","fire_station","government_office","local_government_office","neighborhood_police_station","police","post_office","chiropractor","dental_clinic","dentist","doctor","drugstore","hospital","massage","medical_lab","pharmacy","physiotherapist","sauna","skin_care_clinic","spa","tanning_studio","wellness_center","yoga_studio","apartment_building","apartment_complex","condominium_complex","housing_complex","bed_and_breakfast","budget_japanese_inn","campground","camping_cabin","cottage","extended_stay_hotel","farmstay","guest_house","hostel","hotel","inn","japanese_inn","lodging","mobile_home_park","motel","private_guest_room","resort_hotel","rv_park","beach","church","hindu_temple","mosque","synagogue","astrologer","barber_shop","beautician","beauty_salon","body_art_service","catering_service","cemetery","child_care_agency","consultant","courier_service","electrician","florist","food_delivery","foot_care","funeral_home","hair_care","hair_salon","insurance_agency","laundry","lawyer","locksmith","makeup_artist","moving_company","nail_salon","painter","plumber","psychic","real_estate_agency","roofing_contractor","storage","summer_camp_organizer","tailor","telecommunications_service_provider","tour_agency","tourist_information_center","travel_agency","veterinary_care","asian_grocery_store","auto_parts_store","bicycle_store","book_store","butcher_shop","cell_phone_store","clothing_store","convenience_store","department_store","discount_store","electronics_store","food_store","furniture_store","gift_shop","grocery_store","hardware_store","home_goods_store","home_improvement_store","jewelry_store","liquor_store","market","pet_store","shoe_store","shopping_mall","sporting_goods_store","store","supermarket","warehouse_store","wholesaler","arena","athletic_field","fishing_charter","fishing_pond","fitness_center","golf_course","gym","ice_skating_rink","playground","ski_resort","sports_activity_location","sports_club","sports_coaching","sports_complex","stadium","swimming_pool","airport","airstrip","bus_station","bus_stop","ferry_terminal","heliport","international_airport","light_rail_station","park_and_ride","subway_station","taxi_stand","train_station","transit_depot","transit_station","truck_stop","administrative_area_level_3","administrative_area_level_4","administrative_area_level_5","administrative_area_level_6","administrative_area_level_7","archipelago","colloquial_area","continent","establishment","finance","food","general_contractor","geocode","health","intersection","landmark","natural_feature","neighborhood","place_of_worship","plus_code","point_of_interest","political","postal_code_prefix","postal_code_suffix","postal_town","premise","route","street_address","sublocality","sublocality_level_1","sublocality_level_2","sublocality_level_3","sublocality_level_4","sublocality_level_5","subpremise","town_square"],"title":"PlaceType"},"PostDetail":{"properties":{"meta":{"anyOf":[{"$ref":"#/components/schemas/BlogPost"},{"$ref":"#/components/schemas/PileProject"},{"$ref":"#/components/schemas/ModelProject"}],"title":"Meta"},"content":{"type":"string","title":"Content"}},"type":"object","required":["meta","content"],"title":"PostDetail","description":"Full detail model including content."},"ProjectPostBasicInfo":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","const":"project","title":"Type","default":"project"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"date":{"type":"string","title":"Date"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"path":{"type":"string","title":"Path"},"elo":{"type":"integer","title":"Elo"},"asset_type":{"$ref":"#/components/schemas/AssetType"}},"type":"object","required":["id","title","description","date","tags","path","elo","asset_type"],"title":"ProjectPostBasicInfo"},"SeriousApplicationRequest":{"properties":{"name":{"type":"string","title":"Name"},"phone":{"type":"string","title":"Phone"},"li":{"type":"string","title":"Li"},"questions":{"additionalProperties":{"type":"string"},"type":"object","title":"Questions"},"type":{"$ref":"#/components/schemas/ApplicationType","default":"serious"},"turnstile_token":{"type":"string","title":"Turnstile Token"}},"type":"object","required":["name","phone","li","turnstile_token"],"title":"SeriousApplicationRequest"},"SocialFeedResponse":{"properties":{"posts":{"items":{"type":"object"},"type":"array","title":"Posts"},"profiles":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Profiles"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["posts","profiles"],"title":"SocialFeedResponse"},"SocialPlatform":{"type":"string","enum":["youtube","instagram","tiktok","facebook","x","linkedin"],"title":"SocialPlatform"},"Target":{"properties":{"keyword":{"type":"string","title":"Keyword"},"granularity":{"type":"number","maximum":100.0,"minimum":5.0,"title":"Granularity","description":"How granular of a search this will be. The program effectively searches your keyword every x square miles.","default":10.0},"filter":{"$ref":"#/components/schemas/TargetFilter"}},"type":"object","required":["keyword"],"title":"Target"},"TargetFilter":{"properties":{"shape":{"type":"boolean","title":"Shape","description":"If true, only include results strictly inside the polygon.","default":true},"types":{"anyOf":[{"items":{"$ref":"#/components/schemas/PlaceType"},"type":"array"},{"type":"null"}],"title":"Types","description":"A list of Google Place types to filter results. A place will be included if it matches any of the selected types."},"user_count_filter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"User Count Filter"},"remove_cross_keyword_duplicates":{"type":"boolean","title":"Remove Cross Keyword Duplicates","description":"If true, remove duplicates that are found across different keyword searches. All duplicates are already removed within each keyword search, this only applies to duplicates found across different keywords.","default":false}},"type":"object","title":"TargetFilter"},"UnseriousApplicationRequest":{"properties":{"name":{"type":"string","title":"Name"},"questions":{"additionalProperties":{"type":"string"},"type":"object","title":"Questions"},"type":{"$ref":"#/components/schemas/ApplicationType","default":"unserious"},"turnstile_token":{"type":"string","title":"Turnstile Token"}},"type":"object","required":["name","turnstile_token"],"title":"UnseriousApplicationRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VehicleInquiryRequest":{"properties":{"name":{"type":"string","title":"Name"},"phone":{"type":"string","title":"Phone"},"email":{"type":"string","title":"Email","default":""},"preferred_contact":{"$ref":"#/components/schemas/InquiryContactMethod","default":"phone"},"inquiry_type":{"$ref":"#/components/schemas/InquiryType","default":"general"},"message":{"type":"string","title":"Message","default":""},"has_trade_in":{"type":"boolean","title":"Has Trade In","default":false},"trade_in_details":{"type":"string","title":"Trade In Details","default":""},"vehicle_vin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Vin"},"vehicle_stock":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Stock"},"vehicle_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Title"},"vehicle_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Year"},"vehicle_make":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Make"},"vehicle_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Model"},"vehicle_trim":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Trim"},"vehicle_condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Condition"},"vehicle_exterior_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Exterior Color"},"vehicle_interior_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Interior Color"},"vehicle_mileage":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vehicle Mileage"},"vehicle_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vehicle Price"},"vehicle_dealer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vehicle Dealer"},"is_aged_deal":{"type":"boolean","title":"Is Aged Deal","default":false},"turnstile_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Turnstile Token"}},"type":"object","required":["name","phone"],"title":"VehicleInquiryRequest"},"src__api__pages__location_finder__index__LocationRequest":{"properties":{"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates","description":"Non-closed array of [latitude, longitude] points to search within."},"target":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"title":"Target","description":"The target company/location type or list of types. If list must be less than 10","examples":["Roofing Company",["Doctor's Office","Pharmacy"]]},"granularity":{"type":"number","maximum":100.0,"minimum":5.0,"title":"Granularity","description":"How granular of a search this will be. The more granular, the more likely for bad results. The less granular the fewer results. It effectively does one google search every x square miles.","default":10.0},"filter_by_shape":{"type":"boolean","title":"Filter By Shape","description":"Whether to filter out results that are outside the provided shape.","default":false}},"type":"object","required":["coordinates","target"],"title":"LocationRequest"},"src__api__pages__location_finder_advanced__index__LocationRequest":{"properties":{"coordinates":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Coordinates","description":"Non-closed array of [latitude, longitude] points to search within."},"targets":{"items":{"$ref":"#/components/schemas/Target"},"type":"array","maxItems":10,"minItems":1,"title":"Targets","description":"List of search targets."},"merge":{"type":"boolean","title":"Merge","description":"If true, merge results from all targets into a single CSV. If false, send separate CSVs for each target.","default":false},"geojson":{"type":"boolean","title":"Geojson","description":"If true, generate and include a GeoJSON file representing the search grid and results.","default":true}},"type":"object","required":["coordinates","targets"],"title":"LocationRequest"}}}}