Skip to main content

How do I handle pagination in PI Web API responses?

How do I handle pagination in PI Web API responses?

PI Web API returns paginated results for large datasets. Here's how to handle pagination correctly.

Default Behavior

  • Most endpoints return a maximum of 1000 items per request.
  • The response includes a Links object with First, Previous, Next, and Last URLs.

Pagination Parameters

ParameterDescription
startIndexZero-based index of the first item to return
maxCountMaximum number of items per page (default: 1000)
selectedFieldsReduce response size by selecting specific fields

Python Example

import requests

def get_all_items(url, auth):
    all_items = []
    start_index = 0
    max_count = 1000
    
    while True:
        response = requests.get(
            url,
            params={
                "startIndex": start_index,
                "maxCount": max_count
            },
            auth=auth, verify=False
        ).json()
        
        items = response.get("Items", [])
        all_items.extend(items)
        
        # Check if there are more pages
        links = response.get("Links", {})
        if "Next" not in links or len(items) < max_count:
            break
        
        start_index += max_count
    
    return all_items

# Usage
all_points = get_all_items(
    f"{base_url}/dataservers/{server_webid}/points",
    auth=("domain\\user", "password")
)
print(f"Total points: {len(all_points)}")

For Recorded Values

Use time-based pagination instead of index-based:

# Get recorded values in chunks
params = {
    "startTime": "2024-01-01",
    "endTime": "2024-01-31",
    "maxCount": 10000
}
response = requests.get(
    f"{base_url}/streams/{web_id}/recorded",
    params=params, auth=auth, verify=False
).json()

Tips

  • Use selectedFields to reduce payload size and improve performance.
  • For very large queries, use PI Web API batch to parallelize.
  • Don't set maxCount higher than needed — it increases response time.
  • Consider using startTime/endTime chunking for time-series data instead of index pagination.

Want to ask a follow-up?

PiChat can help with your specific PI System use case. Ask follow-up questions, get code examples, and troubleshoot issues.

Related Questions

Dive Deeper

More Questions

How do I configure PI AF templates?How do I authenticate with PI Web API from Python?What's the difference between snapshot and archive values in PI?What's the difference between PI Vision and PI ProcessBook?How do I build effective PI Vision displays?What are PI Event Frames and how do I use them?How do I write PI AF Analytics expressions?How do I use PI DataLink in Excel?Should I use PI Web API or AF SDK for my application?How do I write data to PI Data Archive?What are the main components of PI System architecture?How do I optimize PI Data Archive performance?How do I set up the PI Interface for OPC DA?How do I use PI Connector for UFL to import file data?How do I set up PI Data Archive high availability with collectives?What are the security best practices for PI System?How do I migrate PI Data Archive to a new server?How do I connect Power BI to PI System?How do I manage units of measure in PI System?What's the best way to learn PI System?How does PI time syntax work?What are good PI tag naming conventions?How do I access PI System data from Java or Linux?How do I set up PI AF notification rules?How do I use batch requests in PI Web API?How do I connect to PI AF Server using AF SDK in C#?How do I write VBA macros in PI ProcessBook?How does PI data compression work?How do I get real-time streaming updates from PI Web API?How do I troubleshoot PI AF Analysis errors?How do I write SQL queries against PI using PI OLEDB?What is PI interface buffering and how do I configure it?How do I search and query PI Event Frames?What is PI Integrator for Business Analytics?How do I fix the 'Point does not exist' error in PI System?What is the difference between PI ACE and AF Analytics?How do I manually enter data into PI Data Archive?What are AF hierarchy design best practices?What is a WebID in PI Web API and how does it work?How do I configure Kerberos authentication for PI System?Can I deploy PI System in the cloud?How do I calculate summaries (average, total, min, max) in PI?What are PI digital states and how do I use them?How do I connect PI System data to Grafana?How do I backup and restore PI Data Archive?How do I create custom symbols in PI Vision?How do I automate PI System tasks with PowerShell?What is AVEVA Connect and how does it relate to PI System?How do I check and handle data quality in PI System?How does AVEVA PI System licensing work?How do I plan a PI System upgrade?