OData Service Extractor
Pricing
from $0.35 / 1,000 entities
OData Service Extractor
Point at ANY OData service (v2/v3/v4) — SAP, Dynamics 365, Business Central, Dataverse, SharePoint, national-stats & gov portals. Pick an entity set or auto-discover from $metadata; apply $filter/$select/$orderby/$expand; auto-paginate to flat rows + raw. Pay per row.
Pricing
from $0.35 / 1,000 entities
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
A generic "point at any OData service" scraper. OData (the OASIS
query protocol) is the query language behind SAP, Microsoft Dynamics 365 / Business Central,
Dataverse / Power Platform, SharePoint lists, and a huge number of national-statistics and
open-government portals — yet there was no generic runner on the Store. Give this actor a
service root URL, optionally pick an entity set (or let it auto-discover them from $metadata),
apply the standard OData query options, and it pages the whole result set into clean, flat
dataset rows plus a lossless raw object.
Works with all three OData JSON envelopes — v4 (@odata.*), v3 (odata.*) and legacy v2
verbose (d.results) — detected automatically from the response.
What it does
- Extract an entity set — set the service root + entity set (e.g.
Products,Customers,TypedDataSet) and it pulls every matching row, auto-following@odata.nextLink/odata.nextLink/__nextpagination up to your Max results. - Auto-discover — leave the entity set empty and it reads
$metadata, then extracts across all discovered sets (sharing the Max-results budget). Or turn on List entity sets only to just return the catalogue (name + entity type + items URL) without pulling data. - Query options —
$filter,$select,$orderby,$expand,$search,$topmap to the matching fields. Anything else can go in Extra query parameters. - Flat + raw — each entity's scalar properties are spread to columns (OData annotations and
v2 deferred navigation links stripped); the untouched entity is kept in
raw, so nothing is lost even though every service has a different shape.
Example inputs
Northwind products (OData v4 demo):
{ "serviceRoot": "https://services.odata.org/V4/Northwind/Northwind.svc", "entitySet": "Products", "orderby": "UnitPrice desc", "maxResults": 100 }
Statistics Netherlands, a real government v3 service (no auth):
{ "serviceRoot": "https://opendata.cbs.nl/ODataApi/odata/83765NED", "entitySet": "TypedDataSet", "top": 100, "maxResults": 500 }
Filter + select:
{ "serviceRoot": "https://services.odata.org/V4/Northwind/Northwind.svc", "entitySet": "Products", "filter": "UnitPrice gt 20 and Discontinued eq false", "select": "ProductID,ProductName,UnitPrice" }
Discover what a service exposes:
{ "serviceRoot": "https://services.odata.org/V4/Northwind/Northwind.svc", "listEntitySetsOnly": true }
Authentication
None required for public services. For tenant-gated endpoints (Dynamics 365 / Business Central / Dataverse / SharePoint) supply a Bearer token and/or Extra request headers — both optional, never required, and the token is never logged.
Output
One dataset item per entity, with fixed meta columns:
_entitySet— the set the row came from._odataVersion— detected envelope version (v2/v3/v4)._id— the entity's OData id / edit URL / v2__metadata.uri(when present).- …plus every business property of the entity as its own column, and
raw= the complete original object.
A query that matches nothing returns 0 items, not an error.
Pricing
Pay per row — you're charged one entity event per record returned (one per entity set in
list-only mode). A query that matches nothing costs nothing.
Notes
- Handles OData v2, v3 and v4; relative and absolute
nextLinks; single-entity-by-key requests. - Not affiliated with or endorsed by OASIS, OData, Microsoft, SAP, or any target service.