FD MealPlanner API Notes
Notes here were gathered by going to the FD MealPlanner website and poking around while watching the network inspector to see what APIs it called out to and with what parameters. This page isn’t designed to act as direct documentation, it’s just meant to be a general overview of the API endpoints that I discovered and tinkered with. I mostly wrote these for myself, but hopefully they will still be helpful to others.
Search API
Search URL that returns the list of locations at RIT on fdmealplanner: (masked because long)
Appears as though I’d want to fetch this endpoint and try to match dining locations I got from TigerCenter with locations listed in the search results, and then mark those as having a menu available from fdmealplanner. Will be somewhat annoying to try and match since these use somewhat different names with extra things added, so this might take some tinkering. I wish I had IDs to match.
Search API URL Documentation
| Key | Description | Value |
|---|---|---|
| AccountShortName | The fdmealplanner account to get locations for | RIT |
| isActive | ? | Presumably 1, not required |
| IsPlannerLocation | If this location is on fdmealplanner? Seems not very useful | Presumably 1, not required |
| pageIndex | Likely has to do with organizing displayed results | 1 works, returns an error if not filled in |
| pageSize | Likely has to do with organizing displayed results | 1 works, returns an error if not filled in |
| isWeb | Probably differentiating types of results but makes no difference here? | Presumably 1, not required |
| _ | Nonce to prevent caching | Not required |
Minimum viable URL from what I can tell (generic URL): (masked because long)
Meal Periods API
Meal periods API that returns the meal periods that a location is open for: (masked because long)
This would let me fetch the meal periods that a location is open for in a day to either find the single period to pass along to the meals API or to present the user with options if there are multiple periods.
Meal Periods API URL Documentation
| Key | Description | Value |
|---|---|---|
| isActive | ? | Presumably 1, not required |
| locationId | The ID of the location we want the meal periods for | Fill in from using the ID in the response from the search API |
| _ | Nonce to prevent caching | Not required |
Minimum viable URL from what I can tell (using Beanz here): (masked because long)
Meals API
Example meals URL for Beanz from fdmealplanner: (masked because REALLY long)
Once I have the information for what dining location I need, I can use some of the information returned by the search API to make a request to the actual meals API. There might be another step in between to get the valid opening periods, however, since they differ based on locations (and some locations actually have multiple opening periods to offer to the user). Lots of keys but most of them should be filled out pretty easily when actually used in context.
Meals API URL Documentation
| Key | Description | Value |
|---|---|---|
| menuId | ? | Seems to always be 0 |
| accountId | ? | accountId and locationId seem to match, likely both referring to what location we’re looking at. Provided by the search API response. |
| locationId | ? | ^ |
| mealPeriodId | The meal period we’re looking at | Likely an ID that maps to a period like “All Day”, “Lunch”, etc., values need to be mapped out. |
| tenantId | Possibly refers to RIT Dining as a whole? | Seems to always be 20, provided by the search API response. |
| monthId | Month we’re looking at | The current month, i.e. 9 for September |
| fromDate | Starting date of data to return | Set fromDate and endDate to the same value (formatted YYYY/MM/DD) to get data for just the current date |
| endDate | Ending date of data to return | ^ |
| timeOffset | ? | Seemingly not required |
| _ | Nonce to prevent caching | Not required |
Minimum viable URL from what I can tell (Beanz for November 3rd): (masked because long)