Skip to main content

Should I use PI Web API or AF SDK for my application?

Should I use PI Web API or AF SDK for my application?

Both PI Web API and AF SDK provide programmatic access to PI System data. The right choice depends on your platform, deployment, and use case.

PI Web API

RESTful HTTP API — works from any language or platform.

Best for:

  • Web applications (JavaScript, React, Angular)
  • Cross-platform clients (Python, Java, Go, mobile)
  • Cloud-hosted applications
  • Microservices and containerized architectures
  • Integration with non-Windows systems

Pros:

  • Language-agnostic — anything that can make HTTP requests
  • No client-side installation required
  • Works through firewalls (HTTPS)
  • Built-in Swagger documentation

Cons:

  • HTTP overhead for high-frequency reads
  • No real-time push (must poll or use SignalR channels)
  • Bulk operations are slower than native SDK

AF SDK

.NET library — native, high-performance access.

Best for:

  • Windows desktop applications (.NET)
  • High-throughput data writes
  • Complex AF operations (bulk element creation, template management)
  • Real-time data subscriptions (AFDataPipe)
  • PI System administration tools

Pros:

  • Highest performance — native protocol
  • Real-time subscriptions via data pipes
  • Full PI System functionality
  • Strong typing and IntelliSense

Cons:

  • Windows and .NET only
  • Requires PI AF Client installation
  • Tighter coupling to PI infrastructure

Decision Matrix

CriteriaPI Web APIAF SDK
LanguageAny.NET only
PlatformAny OSWindows
PerformanceGoodBest
Real-timePollingNative data pipes
Cloud-readyYesLimited
Install requiredNoYes

Hybrid Approach

Many organizations use both: AF SDK for backend services running on-premises, and PI Web API for web frontends and cloud integrations.

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?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 do I handle pagination in PI Web API responses?How does AVEVA PI System licensing work?How do I plan a PI System upgrade?