> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://learning.postman.com/llms.txt.

# Postman SDK language options

Postman SDKs are generated in multiple programming languages to provide seamless integration with your applications. Each language has specific configuration options that allow you to customize the SDK to fit your development environment and preferences. Learn about the available options for each supported language below.

Postman SDKs also include built-in [analytics capabilities](#analytics) that help you monitor and observe API interactions in your applications. They use industry-standard OpenTelemetry (OTLP) for distributed tracing, providing deep insights into HTTP requests, responses, and errors.

## TypeScript

These options are specific to the TypeScript SDKs.

### Options

**`npmOrg`**

Set the scope for the npm package name.

---

**`npmName`**

Set the name for the npm package.

---

**`httpClient`** `axios, fetch, or https` — default: fetch

Set the HTTP client for the SDK. Choose between [Axios](https://axios-http.com/), [Fetch](https://www.npmjs.com/package/@types/node-fetch), or the [Node HTTPS module](https://nodejs.org/api/https.html), depending on your preference or requirements.

---

**`bundle`** `boolean` — default: false

Set to `true` configures the TypeScript SDK so that it can be bundled using [tsup](https://tsup.egoist.dev/). This is required if you want to use the SDK in a browser environment, and it can also be used in Node.js environments. When set to `true`, the generated SDK will include a `bundle` script in the `package.json` file that uses tsup to create a bundled version of the SDK.

---

**`exportClassDefault`** `boolean` — default: false

Determine whether to export the main SDK class as the default export. By default, the main SDK class is exported as a named export. Setting `exportClassDefault` to `true` changes this behavior so that the main SDK class is exported as the default export, which can simplify imports in some cases.

---

## Java

These options are specific to the Java SDKs.

### Options

**`groupId`**

Set the group ID for the Java package. This is set as the `groupId` in the `pom.xml` file, as well as being used to define the namespace for the SDK classes.

---

**`artifactId`**

Set the artifact ID for the Java package. This is set as the `artifactId` in the `pom.xml` file, as well as being used to define the name of the main SDK class.

---

**`developers`** `array of objects`

Set the developers for the Java package. This is set as the `developers` in the `pom.xml` file, as well as being used to define the developers of the SDK. The options for each developer are `name`, `email`, `organization`, and `organizationUrl`. The `organizationUrl` can be used to link to the developer's organization, such as a GitHub profile or company website.

---

## Kotlin

These options are specific to the Kotlin SDKs.

### Options

**`groupId`**

Set the group ID for the Kotlin package. This is set as the `groupId` in the `pom.xml` file, as well as being used to define the namespace for the SDK classes.

---

**`artifactId`**

Set the artifact ID for the Kotlin package. This is used for the published artifact name and to define the name of the main SDK class.

---

**`developers`** `array of objects`

Set the developers for the Kotlin package. This is used in the Maven publication configuration in `build.gradle.kts`, as well as being used to define the developers of the SDK. The options for each developer are `name`, `email`, `organization`, and `organizationUrl`. The `organizationUrl` can be used to link to the developer's organization, such as a GitHub profile or company website.

---

## Python

These options are specific to the Python SDKs.

### Options

**`name`**

Set the name of the PyPI package to publish to. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI.

---

**`version`** — default: 1.0.0

Set the version of the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI.

---

**`description`**

Set the description of the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI.

---

**`readme`**

Set the path to the README file for the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. This should be a path to a file that contains the long description of the package, which is typically the README file. The content of this file is used as the long description on the PyPI package page.

---

**`requires-python`** — default: >=3.8

Set the Python version requirement for the package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. This should be a string that specifies the minimum Python version required, such as `>=3.8`.

---

**`license`** `string`

Set the license for the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. This should be a string that specifies the license for the package, such as `license = {text = "MIT"}`, `license = {text = "Apache-2.0"}`, or `license = {text = "GPL-3.0"}`. This information is important for users of the SDK to understand the terms under which they can use and distribute the package.

---

**`authors`** `array of objects`

Set the authors for the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. Each author should have a `name` and `email`, which are used to define the authors of the package on PyPI.

---

**`keywords`** `array of strings`

Set the keywords for the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. Keywords are used to help users find the package on PyPI when searching for related topics.

---

**`classifiers`** `array of strings`

Set the [classifiers](https://pypi.org/classifiers/) for the Python package. This is set in the `pyproject.toml` file, and is used when publishing the SDK to PyPI. Classifiers are used to provide metadata about the package, such as the intended audience, license, programming language, and more. This information helps users understand the compatibility and purpose of the package.

---

## C\#

These options are specific to the C# SDKs.

### Options

**`packageId`**

Set the NuGet package ID and root C# namespace for the SDK. This value is used as the root namespace for all generated classes (`Config`, `Models`, `Services`, and so on) and as the `<PackageId>` in the `.csproj` file. Defaults to the PascalCase form of the SDK name.

---

**`authors`** `array of objects`

Set the authors for the SDK package. Each entry supports a `name` (required) and an optional `email`. The author names are written to the `<Authors>` field in the `.csproj` file.

---

**`homepage`**

Set the homepage URL for the SDK package. Written to the `<PackageProjectUrl>` field in the `.csproj` file.

---

## Go

These options are specific to the Go SDKs.

### Options

**`goModuleName`** — required

Set the Go module path for the SDK. This value is written to go.mod as the module declaration and is used in all internal package import paths throughout the generated code (for example, `github.com/your-org/your-sdk`). If you intend to publish the module publicly, the path must match the repository URL so that `go get` can resolve it correctly.

---

**`homepage`**

Set the homepage URL for the SDK. Written into the generated `README.md`.

---

## PHP

These options are specific to the PHP SDKs.

### Options

**`packageName`** — required

Set the Composer package name for the SDK (for example, `your-org/your-sdk`). This value is written to `composer.json` as the name field and is used when publishing the package to Packagist.

---

**`authors`** `array of objects`

Set the authors for the SDK package. Each entry supports a `name` (required) and an optional `email`. Author information is serialized into the `authors` array in `composer.json`.

---

**`homepage`**

Set the homepage URL for the SDK package. Written to the `homepage` field in `composer.json`.

---

## Ruby

These options are specific to the Ruby SDKs.

### Options

**`version`** — default: 1.0.0

Set the version of the Ruby gem. This is set in the gemspec file and is used when publishing the SDK to RubyGems.

---

**`description`**

Set the description of the Ruby gem. This is set in the gemspec file and is used when publishing the SDK to RubyGems.

---

**`authors`** `array of objects`

Set the authors for the Ruby gem. Each entry supports a `name` (required) and an optional `email`. The author names are written to the `authors` field in the gemspec file.

---

**`homepage`**

Set the homepage URL for the Ruby gem. Written to the `homepage` field in the gemspec file.

---

**`license`** — default: MIT

Set the license for the Ruby gem. This is set in the gemspec file and is used when publishing the SDK to RubyGems. Common values include `MIT`, `Apache-2.0`, or `GPL-3.0`.

---

## Rust

These options are specific to the Rust SDKs.

### Options

**`packageName`** — required

Set the crate name for the SDK (for example, `your-org-sdk`). This value is written to `Cargo.toml` as the name field and is used when publishing the package to crates.io.

---

**`authors`** `array of strings`

Set the authors for the SDK crate. Each entry should be in the format `Name <email@example.com>`. Author information is serialized into the `authors` array in `Cargo.toml`.

---

**`homepage`**

Set the homepage URL for the SDK crate. Written to the `homepage` field in `Cargo.toml`.

---

**`repository`**

Set the repository URL for the SDK crate. Written to the `repository` field in `Cargo.toml`.

---

## CLI

These options are specific to the Postman SDK CLI.

### Options

**`skills`** `object` — default: \{ enabled: false }

Configure CLI skills functionality for enhanced command-line interactions. Contains an `enabled` option that can be set to `true` or `false`.

---

**`goModuleName`**

Set the Go module path for the CLI SDK. This value is written to go.mod as the module declaration and is used in all internal package import paths throughout the generated CLI code (for example, `github.com/your-org/your-cli-sdk`). If you intend to publish the module publicly, the path must match the repository URL so that `go get` can resolve it correctly.

---

## Analytics

You can customize the `analytics` behavior to match your observability requirements using the following parameters:

### Options

**`endpoint`** `string` — default: http\://localhost:4318/v1/traces

OTLP endpoint URL for trace data.

---

**`exporter`** `string` — default: console

The `'otlp-http'` or `'console'` exporter type.

---

**`headers`** `object` — default: \{}

Custom HTTP headers for authentication.

---

**`batchSize`** `number` — default: 5

Maximum spans per batch.

---

**`scheduledDelayMillis`** `number` — default: 3000

Delay between batch exports (milliseconds).

---

**`exportTimeoutMillis`** `number` — default: 30000

Timeout for export operations (milliseconds).

---