Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric certified for FREE! Don't miss your chance! Learn more

Reply
HCJ2026
New Member

Get data - Json.document

Hi,
I'm trying to get data from an API to our system AutoPilot.

When I use this promt:

 Json.Document(

        Web.Contents(

            "https://api.autopilot.dk/v2/Timeregistrations",

            [

                Headers = [

                    #"accept" = "application/json",

                    #"Content-Type" = "application/json",

                    #"APPartnerKey" =

                    #"APCompanyKey" =

                ],

                Content = Text.ToBinary("{""page"":1,""pageSize"":29999}")

            ]

        )

    )
I only get the one page of date - but I would like to get all data.
Can someone assist me in getting that to happend?

2 REPLIES 2
Olufemi7
Solution Supplier
Solution Supplier

Hello @HCJ2026

This is expected behaviour the AutoPilot API is paginated.

Your query explicitly requests only page 1, so Power Query will return just that page. Power Query does not automatically fetch all pages; you must loop through them in M.


You need to implement pagination, for example with List.Generate:

let
    BaseUrl = "https://api.autopilot.dk/v2/Timeregistrations",

    GetPage = (Page as number) =>
        Json.Document(
            Web.Contents(
                BaseUrl,
                [
                    Headers = [
                        #"accept" = "application/json",
                        #"Content-Type" = "application/json",
                        #"APPartnerKey" = "YOUR_KEY",
                        #"APCompanyKey" = "YOUR_KEY"
                    ],
                    Content = Text.ToBinary(
                        "{""page"":" & Number.ToText(Page) & ",""pageSize"":29999}"
                    )
                ]
            )
        ),

    Pages =
        List.Generate(
            () => [Page = 1, Data = GetPage(1)],
            each List.Count([Data]) > 0,
            each [Page = [Page] + 1, Data = GetPage([Page])],
            each [Data]
        ),

    Combined = List.Combine(Pages),
    Result = Table.FromRecords(Combined)
in
    Result

 

Microsoft docs confirm that REST APIs must be paged manually in Power Query and all pages must be explicitly combined: Paging 

v-sshirivolu
Community Support
Community Support

Hi @HCJ2026,

 

Your current API request is set to fetch page 1 with a fixed pageSize of 29,999 records. Most modern APIs, including AutoPilot, use pagination, so each request only returns a single page of data even if more pages are available. This is why you only receive the first page. To get all records, you’ll need to add pagination logic and request each page in order, then combine the results. In Power Query (M language), this usually involves creating a function to retrieve one page and then using List.Generate or similar logic to loop through page numbers until no more data is returned.
After collecting all pages, you can combine them into one table. Json.Document itself does not require any changes, rather, you need to add pagination logic so Power Query makes multiple API calls. This way, your query will return all timeregistrations, not just the first page.

Refer these Microsoft Docs - 

https://learn.microsoft.com/en-us/powerquery-m/web-contents

https://learn.microsoft.com/en-us/power-query/samples/trippin/5-paging/readme

https://learn.microsoft.com/en-us/power-query/handling-paging

 

Thank you.

Helpful resources

Announcements
Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.