Skip to content

SDK Metadata

The sdk and spec sections define your SDK’s identity and source specification.

The sdk section defines package metadata used across all generated SDKs.

sdk:
name: my-sdk
version: 1.0.0
description: SDK for My API
PropertyRequiredTypeDescription
nameYesstringBase package name
versionYesstringSemantic version (e.g., 1.0.0)
descriptionNostringPackage description

The sdk.name is transformed for each target language:

sdk.nameTypeScriptPythonGoJava
my-sdkmy-sdkmy_sdkmysdkmy-sdk
acme-apiacme-apiacme_apiacmeapiacme-api

Use semantic versioning for your SDK version:

sdk:
version: 1.2.3 # Standard
version: 1.0.0-beta.1 # Pre-release
version: 2.0.0-rc.1 # Release candidate

The version is used in:

  • package.json for TypeScript
  • pyproject.toml for Python
  • go.mod for Go
  • pom.xml for Java

The spec section defines where to find your OpenAPI specification.

spec:
path: ./openapi.yaml
PropertyRequiredTypeDescription
pathYes*stringLocal path to OpenAPI spec
originNostringRemote URL for spec

*Either path or origin must be provided.

Reference a local OpenAPI file:

spec:
path: ./openapi.yaml # YAML format
# path: ./openapi.json # JSON format
# path: ./specs/api.yaml # Subdirectory

Paths are relative to the soxom.yaml location.

Fetch specification from a URL:

spec:
origin: https://api.example.com/openapi.yaml

When using origin:

  • Soxom fetches the spec at generation time
  • Supports HTTP and HTTPS
  • Supports YAML and JSON formats
  • Caches locally for offline use

Use both for local development with remote source of truth:

spec:
path: ./openapi.yaml # Local cache
origin: https://api.example.com/openapi.yaml # Canonical source

When spec.origin is set, Soxom re-fetches the spec on every build, so the SDK always reflects the canonical source. No manual refresh step is needed — push to the Config Repository to build automatically, or trigger a build from the Builds view in the dashboard.

FormatExtensionsSupport
OpenAPI 3.1.yaml, .yml, .jsonSupported — see compatibility matrix for per-feature coverage
OpenAPI 3.0.yaml, .yml, .jsonFull
OpenAPI 2.0 (Swagger)-Not supported
version: "1.0"
sdk:
name: my-sdk
version: 1.0.0
spec:
path: ./openapi.yaml
targets:
- typescript
version: "1.0"
sdk:
name: acme-platform-sdk
version: 2.1.0
description: |
Official SDK for the Acme Platform API.
Provides access to users, orders, and payments.
spec:
path: ./api/openapi.yaml
origin: https://api.acme.com/v2/openapi.yaml
targets:
typescript:
package_name: "@acme/platform-sdk"
python:
package_name: acme-platform-sdk