๐ OData (Excel / Power BI)
A read-only OData V4 query layer at /odata that exposes accounts,
contacts, the directory, tags, events, event participants, online forms, and
form participants. Connect Excel or Power BI directly — no data export
step needed.
This endpoint requires login. Unlike the calendar feed and JSON
API, OData uses your EasyShul email and password (sent as HTTP Basic auth from
Excel / Power BI). The service document and
$metadata are public so
Excel can discover the schema before prompting for credentials.
Service URL
This is what you paste into Excel's "From OData Feed" dialog or Power BI's "Get Data โ OData Feed".
Connect from Excel
- Open Excel and create or open a workbook.
- Go to the Data tab and click Get Data โ From Other Sources โ From OData Feed.
- Paste the service URL above and click OK.
- When prompted for credentials, choose Basic.
- Enter your EasyShul email and password and click Connect.
- In the Navigator, check the entity sets you want (e.g.,
Contacts,Events) and click Load.
Connect from Power BI
- Open Power BI Desktop.
- Click Get Data โ OData Feed.
- Paste the service URL and click OK.
- Choose Basic auth and enter your EasyShul credentials.
- Select the entity sets in the Navigator and click Load or Transform Data.
Available entity sets
| Path | What it returns |
|---|---|
/odata/Accounts | Member accounts (families) |
/odata/Contacts | Individual contacts |
/odata/Directory | Directory entries (members visible in the directory) |
/odata/Tags | Account tags |
/odata/Events | Events with details, pricing, dates |
/odata/EventParticipants | Event registrations with form data |
/odata/Forms | Online forms (registration / fundraiser forms) |
/odata/FormParticipants | Online form registrations with form data |
Relationships
The schema declares navigation properties so Excel and Power BI can show expandable columns and Power BI auto-creates the data model relationships:
| From | Navigation | To |
|---|---|---|
| Account | Contacts | Contact[] |
| Account | DirectoryEntries | DirectoryEntry[] |
| Contact | Account | Account |
| DirectoryEntry | Account | Account |
| Event | Participants | EventParticipant[] |
| EventParticipant | Event | Event |
| EventParticipant | AccountRef | Account |
| Form | Participants | FormParticipant[] |
| FormParticipant | Form | Form |
| FormParticipant | AccountRef | Account |
Query options (for raw HTTP)
If you're hitting the endpoint directly (curl, scripting, etc.), the standard OData query options are supported:
| Option | Example |
|---|---|
$top | ?$top=10 |
$skip | ?$skip=20 |
$select | ?$select=first_name,last_name,email_address |
$orderby | ?$orderby=last_name desc |
$count | ?$count=true |
$filter | ?$filter=contains(last_name,'Smith') |
Filter operators
- Comparison:
eq,ne,gt,ge,lt,le - Functions:
contains(field,'value'),startswith(field,'value'),endswith(field,'value') - Logical:
and,or
Example: search contacts
Schema (CSDL / EDMX)
Auto-discovered by Excel and Power BI. View it directly:
Open the metadata document โ
Notes
- All entity types are marked
OpenType, so dynamic upstream properties beyond the declared schema flow through unchanged. EventParticipant.formDataandFormParticipant.formDataareCollection(FormDataEntry)— expand them in Power Query to flatten the rows.- All filtering, sorting, and pagination is applied in-memory after fetching from EasyShul. Pulling everything is fine for typical synagogue-sized datasets.