Customize SDK method names

Use the x-fern-sdk-group-name and x-fern-sdk-method-name extensions to control how endpoints are organized in your SDK.

Fern automatically parses operationId

If no extensions are present, Fern uses your operation ID to generate SDK method names. Format operation IDs as {tag_name}_{operation_name} (example: users_get) to automatically generate methods like users.get(). If the operation ID doesn’t start with a tag, Fern uses it directly as the method name.

In the example below, Fern will generate a method called client.users.create() for the POST /users endpoint.

openapi.yaml
1paths:
2 /users:
3 post:
4 x-fern-sdk-group-name: users
5 x-fern-sdk-method-name: create

Top level methods

If you omit the x-fern-sdk-group-name extension, the generated SDK method will live at the root of the client rather than nested under a resource group. In the example below, Fern will generate a method called client.send():

openapi.yaml
1paths:
2 /send:
3 post:
4 x-fern-sdk-method-name: send

Multiple levels of nesting

See how merge.dev uses nested groups here.

If you add more than one x-fern-sdk-group-name extension, then the generated SDK will nest group names. The generated SDK method preserves the order of group names.

In the example below, Fern will generate a method called client.users.notifications.send():

openapi.yaml
1paths:
2 /users/notifications:
3 post:
4 x-fern-sdk-group-name:
5 - users
6 - notifications
7 x-fern-sdk-method-name: send