GET/sonic/categoriesapiKey1 credit/request
List Sonic Drive-In menu categories
Returns Sonic Drive-In's national menu's top-level categories -- Breakfast, Value, Limited Time, Combos, Burgers, Chicken, Hot Dogs, Sandwiches, Snacks & Sides, Sweets, Tea & Coffee, Lemonades & Limeades, Sodas, Slushes, Refreshers, Wacky Pack Kids Meals and others -- each with its slug (the value GET /sonic/menu takes) and a page_count of subcategory/item pages nested under it.
Required params: None
GET/sonic/itemapiKey1 credit/request
Look up one Sonic Drive-In menu item's detail
Returns one menu page's detail: name, description, image, and a link to Sonic's site-wide nutrition/allergen guide PDF. path must be a "menu" section path with kind category, subcategory, or item from GET /sonic/sitemap (or a path copied from a GET /sonic/menu-adjacent page you already know).
Required params: path:query
GET/sonic/menuapiKey1 credit/request
List one Sonic Drive-In menu category's items
Returns the items in one Sonic Drive-In menu category, each with its name and published calorie count. Category slugs come from GET /sonic/categories. Some entries are themselves a nested size/variant group (e.g. "Coffee" expands to Small/Medium/Large/Rt.44 orderable sizes) rather than a single orderable product -- there is no price or full nutrition panel in this source, only calories; see GET /sonic/item for description, image, and a link to Sonic's nutrition guide.
Required params: category:query
GET/sonic/sitemapapiKey2 credits/request
Browse Sonic Drive-In's menu-page or store-locator sitemap
Returns one page of Sonic Drive-In's own sitemap: section=menu lists every menu category/subcategory/item page (298 pages), section=locations lists every store-directory page (state/city/store, ~3,365 stores). Each entry's path is what GET /sonic/item (menu section) or GET /sonic/store (locations section, kind=store) takes.
Required params: section:query
GET/sonic/storeapiKey1 credit/request
Look up one Sonic Drive-In restaurant by its locator path
Returns one Sonic Drive-In restaurant's address, phone, coordinates, open/closed status, amenities, weekly hours broken down per fulfillment channel (order-ahead, pickup, curbside, in-store, delivery, drive-through), and delivery-provider deep links (DoorDash, GrubHub, Uber Eats, Postmates). path must be a "locations" section, kind=store path from GET /sonic/sitemap.
Required params: path:query
GET/sonic/dealsapiKey1 credit/request
List Sonic Drive-In's current promotions
Returns the promotions currently published on Sonic Drive-In's national deals page -- each with its marketing headline, public name, description, legal terms, call-to-action label and link, and creative image. This page is not listed in Sonic's own sitemap, so GET /sonic/sitemap will never surface it. Deals are national marketing offers, not per-store pricing; there is no price field in this source. Between campaigns Sonic can publish the page with no promotions at all, which returns an empty deals array with count 0 rather than an error.
Required params: None
GET/sonic/nearbyapiKey1 credit/request
Find Sonic Drive-In restaurants near a coordinate
Returns Sonic Drive-In restaurants within a radius of a latitude/longitude, nearest first, one page at a time. Each result carries the same detail as GET /sonic/store -- address, phone, coordinates, open/closed status, amenities, weekly hours per fulfillment channel, and delivery-provider deep links -- plus distance_miles from the search centre, so ranking or mapping results needs no follow-up call per store. Use this instead of paging GET /sonic/sitemap when you know roughly where you are looking. An area with no restaurants returns an empty stores array with total_stores 0, not an error.
Required params: latitude:query, longitude:query
GET/sonic/availabilityapiKey1 credit/request
List a Sonic Drive-In restaurant's order-ahead time slots
Returns the bookable order-ahead windows for one Sonic Drive-In restaurant, grouped by service channel and local date. Each window has a UTC start_time and end_time. Also returns the store's timezone, how long each window lasts (slot_duration_minutes), the prep/handoff buffer before the first bookable window (lead_time_minutes), and service_types -- every channel the store supports, which is a superset of the channels that currently have windows. fulfillment selects the request method and accepts exactly `PICKUP` or `DELIVERY`; note the per-window service_type is a separate, finer vocabulary and can be `ORDER_AHEAD`, `CURBSIDE_PICKUP`, `DRIVE_THROUGH`, `STORE`, `PICKUP` or `DELIVERY`. A closed or fully-booked restaurant returns an empty channels array with total_slots 0, not an error. An unknown store_id returns 404.
Required params: store_id:query
GET/sonic/location-suggestapiKey1 credit/request
Complete an address into coordinates for Sonic Drive-In store search
Completes a partial address, place, city, state or ZIP into ranked matches, each already carrying the latitude and longitude that GET /sonic/nearby takes -- so a caller can run a Sonic restaurant search from free text instead of coordinates. Each suggestion's layer describes its granularity and is one of `address`, `locality`, `state`, `postalCode` or `place`, and confidence is one of `exact`, `interpolated` or `fallback`. Results are restricted to one country (default US). A query that matches nothing returns an empty suggestions array with count 0, not an error.
Required params: query:query
GET/sonic/nutrition-documentsapiKey1 credit/request
List Sonic Drive-In's official nutrition and allergen documents
Returns the nutrition, allergen and ingredient documents Sonic Drive-In publishes nationally -- the printable menu, the Spanish-language menu, the nutrition guide, allergen information, and the ingredient statement -- each with a directly fetchable URL, file name, MIME type, size in bytes, and the date it was last republished. These are the only structured nutrition source Sonic publishes; per-item macro and micronutrient values are not available anywhere on the public site, and GET /sonic/menu carries calories only. Files are large print-ready PDFs (several megabytes each), so check size_bytes before downloading.
Required params: None