4.4 KiB
Data + Tooling API Skill — Usage Guide
Supplementary reference for platform-data-and-tooling-api-context-get. Load only when needed; the core rules
live in SKILL.md.
- API version: 67.0 (summer-26)
- Generated: 2026-07-23 20:16:53
Worked Examples
Example 1: Build a filtered SOQL query (section-specific)
User: "Query open high-value opportunities with their account name."
- Load only the
fieldssection ofassets/enterprise_api/Opportunity.json. - Confirm
Amount(Filter, Sort),StageName(Filter), andAccountId(reference, relationship_name =Account). - Generate:
SELECT Id, Name, Amount, Account.Name FROM Opportunity WHERE IsClosed = false AND Amount > 100000 ORDER BY Amount DESC
Token savings: ~80% vs loading the whole Opportunity file with its WSDL segment.
Example 2: Safe DML (respect read-only fields)
User: "Update the account rating and its formula health score."
- Load
fieldsonassets/enterprise_api/Account.json. RatinghasUpdate→ writable. A formula field has noCreate/Update→ read-only; attempting to set it fails. Only include writable fields in theupdatepayload.
Example 3: Tooling API code coverage
User: "What fields give per-class Apex code coverage?"
- Load
fieldsonassets/tooling_api/ApexCodeCoverageAggregate.json. - Note
NumLinesCovered,NumLinesUncovered,ApexClassorTriggerId(lowercase "or" — check exact casing per object, don't assumeOr). - Query via the Tooling endpoint (
/services/data/vXX.0/tooling/query), persupported_rest_api_http_methods.
Relationship Traversal
- Parent (child→parent): use
relationship_name—Owner.Name,Account.Industry. - Custom lookups:
__cid field, traverse with__r(Foo__r.Name). - Child (parent→children): use the child relationship name in a subquery, e.g.
SELECT Id, (SELECT Id FROM Contacts) FROM Account. - Polymorphic (
WhoId,WhatId,OwnerIdon some objects):refers_tolists multiple targets — useTYPEOFfor surface-specific fields.
Section Glossary
| Section | Meaning |
|---|---|
fields |
field API names, types, properties, and (enterprise) relationship columns |
fields_columns |
which columns each fields entry carries |
usage |
(enterprise) notes on how the sObject is used |
associated_objects |
(enterprise) related objects — unstructured prose, not indexable JSON; parse the markdown-style bullet list. Whether a named associated object resolves to a real file in assets/enterprise_api/ depends on whether Salesforce crawled it as its own docs page: names ending in Share or OwnerSharingRule reliably do (Salesforce documents these per-object); names ending in ChangeEvent or Feed reliably don't (documented only generically, never as a separate page); names ending in History are inconsistent (sometimes crawled separately, sometimes not) — always verify with a file check before assuming either way, don't trust the name alone in any direction. |
ispersonaccount_fields |
(enterprise) fields present only when Person Accounts are enabled — rare; present on very few objects |
field_reference |
(enterprise) a separate, largely disjoint field catalog (label/length/precision/scale, no query/DML properties) — NOT a superset of fields. Check it when a field isn't in fields. See field_reference_columns for its column shape. |
supported_soap_calls |
(tooling) SOAP operations the record supports |
supported_rest_api_http_methods |
(tooling) REST methods the record supports |
wsdl_segment |
raw WSDL schema for the object (verbose; skip by default) |
Field Properties Cheat Sheet
| Property | Enables |
|---|---|
| Create | set on insert |
| Update | set on update |
| Filter | use in WHERE |
| Sort | use in ORDER BY |
| Group | use in GROUP BY |
| Nillable | may be null (non-nillable = required on insert) |
properties is a single string with tokens separated by ", " — always split on
", ", never on whitespace alone. Some tokens are multi-word (Restricted picklist,
Defaulted on create); splitting on whitespace fragments them into garbage tokens.
A field with Defaulted on create and no Nillable is not strictly required on
insert — Salesforce supplies a default if omitted.
Generated by skill-generator/scripts/generate_data_and_tooling_skill.py.