For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Book a demoLog inStart for free
  • Overview
    • What is an API definition?
    • Project structure
      • Overview
      • Overrides
      • Authentication
      • Servers
      • Sync your specification
        • Overview
        • Audiences
        • Availability
        • Request + response examples
        • Ignoring elements
        • SDK method names
        • SDK group names
        • Server names
Checking status...
SOC2Soc 2 Type II
© 2026 Fern • Birch Solutions, Inc., a Postman company

Documentation

SDKsDocsAsk FernCLI Reference

API Definitions

OpenAPIAsyncAPIOpenRPCgRPC

Resources

BlogSupportPricing

Company

Brand KitPrivacy PolicyTerms of Service
LogoLogo
Book a demoLog inStart for free
On this page
  • Customize method names
  • Method naming conventions
  • CRUD operations
  • List operations
  • Action operations
  • Language-specific method names
  • Namespaced method names
  • Notification method names
  • Async method naming
OpenRPCExtensions

SDK Method Names

||View as Markdown|
Was this page helpful?
Edit this page
Previous

Ignoring methods or schemas

Next

SDK group names

By default, Fern generates SDK method names based on your OpenRPC method names. You can override this behavior using the x-fern-sdk-method-name extension.

Customize method names

Use x-fern-sdk-method-name to specify custom method names for your JSON-RPC methods:

openrpc.yml
1methods:
2 - name: user.getById
3 summary: Get user by ID
4 x-fern-sdk-method-name: getUser
5 params:
6 - name: id
7 schema:
8 type: string
9 required: true
10 result:
11 name: user
12 schema:
13 $ref: '#/components/schemas/User'
14 - name: order.createNew
15 summary: Create a new order
16 x-fern-sdk-method-name: create
17 params:
18 - name: orderData
19 schema:
20 $ref: '#/components/schemas/CreateOrderRequest'
21 required: true
22 result:
23 name: order
24 schema:
25 $ref: '#/components/schemas/Order'

This will generate SDK methods like:

1// Instead of client.user.getById()
2const user = await client.user.getUser({ id: "user_123" });
3
4// Instead of client.order.createNew()
5const order = await client.order.create({ orderData: {...} });

Method naming conventions

Follow these conventions when naming SDK methods:

CRUD operations

Use standard CRUD naming:

openrpc.yml
1methods:
2 - name: user.createUser
3 summary: Create a new user
4 x-fern-sdk-method-name: create
5 # Generates: client.user.create()
6
7 - name: user.getUserById
8 summary: Get user by ID
9 x-fern-sdk-method-name: get
10 # Generates: client.user.get()
11
12 - name: user.updateUser
13 summary: Update user information
14 x-fern-sdk-method-name: update
15 # Generates: client.user.update()
16
17 - name: user.deleteUser
18 summary: Delete a user
19 x-fern-sdk-method-name: delete
20 # Generates: client.user.delete()

List operations

Use descriptive names for list operations:

openrpc.yml
1methods:
2 - name: user.getAllUsers
3 summary: Get all users
4 x-fern-sdk-method-name: list
5 # Generates: client.user.list()
6
7 - name: user.searchUsers
8 summary: Search for users
9 x-fern-sdk-method-name: search
10 # Generates: client.user.search()
11
12 - name: order.getUserOrders
13 summary: Get orders for a user
14 x-fern-sdk-method-name: listByUser
15 # Generates: client.order.listByUser()

Action operations

Use action-oriented names:

openrpc.yml
1methods:
2 - name: email.sendNotification
3 summary: Send email notification
4 x-fern-sdk-method-name: send
5 # Generates: client.email.send()
6
7 - name: payment.processPayment
8 summary: Process a payment
9 x-fern-sdk-method-name: process
10 # Generates: client.payment.process()
11
12 - name: cache.invalidateCache
13 summary: Invalidate cache entries
14 x-fern-sdk-method-name: invalidate
15 # Generates: client.cache.invalidate()

Language-specific method names

You can specify different method names for different programming languages:

openrpc.yml
1methods:
2 - name: user.getUserPreferences
3 summary: Get user preferences
4 x-fern-sdk-method-name:
5 python: get_preferences
6 typescript: getPreferences
7 go: GetPreferences
8 java: getPreferences
9 csharp: GetPreferences
10 params:
11 - name: userId
12 schema:
13 type: string
14 required: true
15 result:
16 name: preferences
17 schema:
18 $ref: '#/components/schemas/UserPreferences'

Namespaced method names

For methods with namespace prefixes, customize the final method name:

openrpc.yml
1methods:
2 - name: analytics.track.pageView
3 summary: Track page view event
4 x-fern-sdk-method-name: trackPageView
5 params:
6 - name: eventData
7 schema:
8 $ref: '#/components/schemas/PageViewEvent'
9 required: true
10 - name: analytics.track.conversion
11 summary: Track conversion event
12 x-fern-sdk-method-name: trackConversion
13 params:
14 - name: eventData
15 schema:
16 $ref: '#/components/schemas/ConversionEvent'
17 required: true

Generates:

1await client.analytics.trackPageView({ eventData: {...} });
2await client.analytics.trackConversion({ eventData: {...} });

Notification method names

For notification methods (one-way calls), use appropriate naming:

openrpc.yml
1methods:
2 - name: log.recordError
3 summary: Record an error event
4 x-fern-sdk-method-name: logError
5 params:
6 - name: errorData
7 schema:
8 $ref: '#/components/schemas/ErrorData'
9 required: true
10 # No result - this is a notification
11 - name: metrics.incrementCounter
12 summary: Increment a metric counter
13 x-fern-sdk-method-name: increment
14 params:
15 - name: metric
16 schema:
17 type: string
18 required: true
19 - name: value
20 schema:
21 type: number
22 default: 1
23 # No result - this is a notification

Async method naming

For methods that return promises or futures, consider async naming:

openrpc.yml
1methods:
2 - name: report.generateReport
3 summary: Generate a report (long-running)
4 x-fern-sdk-method-name: generateAsync
5 params:
6 - name: reportConfig
7 schema:
8 $ref: '#/components/schemas/ReportConfig'
9 required: true
10 result:
11 name: jobId
12 schema:
13 type: string
14 description: Job ID for tracking report generation

This ensures method names follow the conventions of each target language while maintaining clear and intuitive APIs for developers.