Expose a custom Salesforce Apex REST endpoint using @RestResource and handle GET/POST with typed request/response classes
domain: developer.salesforce.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Salesforce Bulk API 2.0 limits — the full failure-mode walkthrough related to developer.salesforce.com, checked against official docs, with linked verified routes.
Steps
Annotate an Apex class with @RestResource(urlMapping='/myresource/*') and mark methods with @HttpGet or @HttpPost
Use RestContext.request and RestContext.response to access the raw request body, path parameters, and set status codes
Define inner Apex classes for request and response payloads and use JSON.deserialize / JSON.serialize for marshalling
Deploy the class and verify the endpoint is accessible at /services/apexrest/<namespace>/myresource/
Call the endpoint externally using a connected app OAuth token in the Authorization header
Write Apex test methods that set RestContext.request manually to achieve code-coverage without making real HTTP calls
Known gotchas
The urlMapping must start with a forward slash and must be unique across the org; duplicate mappings cause a deployment error
Apex REST methods must be global static; non-static or public-scoped methods are silently ignored by the runtime
RestContext is not populated during standard Apex unit tests unless you manually assign a RestRequest to RestContext.request before calling the method
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?