SuitePortalSuitePortal
Guides

Public API

Use SuitePortal's Public API to query your synced NetSuite data at scale. Build integrations, dashboards, and workflows without hitting NetSuite's API limits.

SuitePortal syncs your NetSuite data into a managed data warehouse (PostgreSQL + MongoDB). The Public API lets you query this data with nearly unlimited API requests — no SuiteQL concurrency limits, no governance units, no rate throttling.

Why Use the Public API?

NetSuite's native APIs have strict concurrency and governance limits that make it difficult to build real-time integrations. SuitePortal solves this by:

  1. Syncing data on a schedule — NetSuite data flows into SuitePortal's database via configured syncs
  2. Exposing a fast REST API — Query the synced data with standard REST endpoints, pagination, filtering, and sorting
  3. No NetSuite load — API requests hit SuitePortal's database, not NetSuite. Your integration can make thousands of requests without affecting NetSuite performance.
NetSuite REST APISuitePortal Public API
Concurrency5 concurrent requestsUnlimited
Rate limitsGovernance unitsNone
Response time1-5 seconds~100ms
Data freshnessReal-timeLast sync (configurable)
AuthenticationOAuth 2.0 / TBAAPI key

Setup

1. Define Your API Schema

The schema controls which record types are exposed and what fields are included.

  1. Go to Settings > API in your tenant portal
  2. Click Create Schema (starts as a draft)
  3. Add endpoints — each maps to a synced record type (e.g., invoices, customers)
  4. For each endpoint, select which fields to include
  5. Configure available filters and sort options

2. Publish the Schema

When your schema is ready:

  1. Click Publish — this locks the schema and makes the API callable
  2. The version (e.g., v1) is now live
  3. Future changes require creating a new version

Published schemas are immutable. To make changes, create a new draft version, edit it, and publish. The previous version is frozen but remains accessible.

3. Create an API Key

  1. Go to Settings > API > Keys
  2. Click Create API Key
  3. Copy the key immediately (it's only shown once)
  4. Optionally configure scopes to restrict which endpoints and versions the key can access

4. Make Requests

All requests require two headers:

curl https://suiteportal.io/api/public/v1/invoices \
  -H "Authorization: Bearer sp-your-api-key" \
  -H "x-tenant-id: your-tenant-id"

Endpoints

Each endpoint you define in the schema becomes a REST route:

MethodRouteDescription
GET/api/public/{version}/{resource}List records (paginated)
GET/api/public/{version}/{resource}/{id}Get a single record

Pagination

List endpoints return paginated results:

{
  "data": [...],
  "pagination": {
    "page": 1,
    "pageSize": 50,
    "total": 1234,
    "totalPages": 25
  }
}

Use ?page=2&pageSize=100 query parameters to paginate.

Filtering

If your schema defines filterable fields, use query parameters:

GET /api/public/v1/invoices?status=open&tranDate_after=2025-01-01

Sorting

GET /api/public/v1/invoices?sort=tranDate&order=desc

OpenAPI Documentation

Every published schema auto-generates an OpenAPI 3.1 spec with interactive docs:

  • Spec: GET /api/public/openapi/{version} — JSON spec for code generation
  • Preview: GET /api/public/openapi/{version}/preview — Interactive Scalar API reference UI

You can also preview draft schemas by appending ?draft=true (requires authentication).

API Key Scopes

Scopes restrict what an API key can access:

ScopeExampleDescription
Versionv1Restrict to a specific API version
Resourceinvoices, customersRestrict to specific endpoints
Permissionread, writeControl access level

A key with no scopes defaults to read access on all resources and versions.

Use Cases

Real-Time Dashboards

Build custom dashboards (Retool, Metabase, etc.) that pull live data from the API without touching NetSuite.

E-Commerce Integration

Feed order and invoice data to your storefront, ERP middleware, or fulfillment systems.

Custom Reporting

Query transaction data programmatically for custom reports, aggregations, or exports that NetSuite saved searches can't handle.

Mobile Apps

Power mobile experiences with fast API responses and no NetSuite concurrency concerns.

Next Steps

On this page