What is the NetSuite Schema Browser?
TL;DR: The NetSuite Records Browser (often called Schema Browser) is the canonical reference for every record type, field, and relationship in NetSuite — used by SuiteScript developers, SuiteAnalytics analysts, and integration engineers to find internal IDs, data types, and join paths. It exists in two flavors: the SuiteTalk Schema Browser (for SOAP/REST API) and the Records Browser (for SuiteScript). Both are essential references when building anything custom on NetSuite.
The Schema Browser is Oracle's official documentation of NetSuite's data model. Whenever you're writing SuiteScript, building a saved search, designing a SuiteAnalytics Workbook, or integrating NetSuite via API, you need to know the exact record type identifier, field internal IDs, data types, and how records relate to each other. The Schema Browser tells you all of that.
SuiteTalk Schema Browser vs Records Browser
NetSuite ships two distinct schema reference tools and developers regularly confuse them.
SuiteTalk Schema Browser
The SuiteTalk Schema Browser documents the SOAP/REST web services API surface. It shows record types as exposed via SuiteTalk, including which fields are queryable, writable, and what filters work for each.
Use SuiteTalk Schema Browser when:
- Building SOAP integrations (legacy)
- Developing REST web services integrations
- Writing external code that calls NetSuite's API
Access: NetSuite includes a link inside the platform under Setup → Integration → Web Services Documentation → Records Browser, or you can find the public version on Oracle's website.
Records Browser (SuiteScript)
The Records Browser documents what's available inside SuiteScript — internal IDs of every record type, field internal IDs, sublist field structures, and search join columns. It's larger and more detailed than the SuiteTalk version because SuiteScript runs server-side and has access to more fields.
Use Records Browser when:
- Writing SuiteScript (UserEvents, ScheduledScripts, MapReduce, Suitelets, RESTlets)
- Building saved searches with formula columns
- Developing SuiteAnalytics Workbook datasets
- Designing custom records and fields
Access: NetSuite Help Center → SuiteCloud Platform → SuiteScript → Records Browser.
What you'll find in the Schema Browser
For every record type (Customer, Sales Order, Item, Vendor, Custom Record, etc.), the browser lists:
Internal ID — the programmatic identifier you use in SuiteScript and saved searches. The Customer record's internal ID is customer; Sales Order is salesorder; an item with an Items - Lot Numbered sublist appears under that name.
Body fields — every field on the record header with its internal ID, label, type (text, integer, date, decimal, list/record), and any field-level constraints (mandatory, read-only, default value).
Sublist fields — the line-level fields. A sales order has item sublist with line item, quantity, rate, and amount. The browser shows each sublist's internal ID and the fields on each line.
Search filters — which fields can be used as criteria in saved searches, with their search filter internal IDs.
Search columns — which fields can be returned in saved search results, including formula-friendly columns.
Join paths — the relationships between records. From a Sales Order, you can join to Customer, Item, Subsidiary, Department, etc. Each join shows what record type it connects to and the field internal ID for the join.
Common workflow: finding a field internal ID
A typical SuiteScript task: "Update the customer's primary email when a sales order saves." You need the Customer record's email field internal ID.
- Open Records Browser → navigate to Customer
- In the Body fields list, find Email (label) → the internal ID is
email - In your SuiteScript:
record.load({type: record.Type.CUSTOMER, id: customerId}).getValue({fieldId: 'email'})
For a saved search task: "Show all open sales orders by customer with their primary contact email." You need the join path from sales order to contact.
- Open Records Browser → navigate to Sales Order
- Find Customer join → click through → find Customer's Contact join → the email field
- In saved search: criteria on Sales Order, results column =
customer.contact.email
Schema Browser vs SuiteQL
For SuiteAnalytics Workbook and SuiteQL queries, the data model exposed is similar but not identical to SuiteScript. SuiteQL uses lowercase table names and slightly different join semantics. The Records Browser still helps but you should also check the SuiteAnalytics Connect schema (or use the Catalog view inside Workbook) for the exact SuiteQL field names.
A common gotcha: SuiteScript's internalid field becomes id in SuiteQL. SuiteScript's customer table is customer in SuiteQL too — but a sales order body field like entity (the customer reference) joins differently in SuiteQL than the SuiteScript customer field internal ID suggests.
For deeper context on SuiteQL queries, see our NetSuite REST API guide.
How to find a record type's internal ID quickly
Three methods that work depending on context:
Method 1: Schema Browser navigation. Most reliable but slowest — navigate the alphabetical list of record types.
Method 2: URL inspection. Open the record in the NetSuite UI. The URL contains t=<recordtype> for transactions and e=<recordtype> for entities. Example: a sales order URL contains salesorder.
Method 3: SuiteScript record.Type enum. In SuiteScript 2.x, record.Type enum lists every standard record type. Hover in your IDE or check the SuiteScript documentation to see them all.
For custom records, the internal ID follows the pattern customrecord_<scriptid> where scriptid is what you set when creating the custom record type.
Custom records and the Schema Browser
When you create a custom record type via Setup → Customization → Record Types, NetSuite generates an internal ID following the pattern customrecord_<your_script_id>. The Schema Browser doesn't show your custom records — instead, look at the custom record type definition itself in NetSuite.
For programmatic access, the Records Catalog inside SuiteAnalytics Workbook does show custom records alongside standard ones. The Catalog is increasingly the canonical reference for both standard and custom records.
Schema Browser limitations
Doesn't show role-based field access. Some fields are only available to specific roles. The Schema Browser shows the field exists but doesn't indicate whether your script will have access to it.
Doesn't show feature dependencies. Many fields only appear when specific NetSuite features are enabled. The Schema Browser shows them all; your account may not have access.
Lags behind new releases. NetSuite ships features twice a year (2026.1, 2026.2). The Schema Browser updates after the release goes live, so during release preview you may need to consult release notes for new fields.
SuiteApp fields not always documented. Custom fields added by SuiteApps you've installed may not appear in the public Schema Browser — check the SuiteApp's documentation directly.
Frequently asked questions
Frequently Asked Questions
See if NetSuite fits your business
Share a bit about your business. We'll give you an honest take on whether NetSuite is the right call.

BrokenRubik
NetSuite Development Agency
Expert team specializing in NetSuite ERP, SuiteCommerce development, and enterprise integrations. Oracle NetSuite partner with 10+ years of experience delivering scalable solutions for mid-market and enterprise clients worldwide.
Get More Insights Like This
Join our newsletter for weekly tips, tutorials, and exclusive content delivered to your inbox.
Related Articles
NetSuite Customization Guide: Configure vs Customize (2026)
SuiteBuilder vs SuiteScript vs SuiteFlow — when to use each. Custom records, workflows, SDF deployments, and the mistakes that make upgrades painful.
SuiteQL: Complete Query Language Guide for NetSuite (2026)
Learn SuiteQL, NetSuite query language based on SQL. Syntax, query examples, Analytics Workbook, vs saved searches, and practical use cases.
NetSuite 2026.1 Release Notes: Developers & IT Architects
NetSuite 2026.1 for developers: REST batch operations, SuiteScript 2.1 runtime upgrades, AI coding in VS Code, and the TBA deprecation deadline.
BrokenRubik