Official Multi-Language SDKs
Official Multi-Language SDKs
GAAPx provides officially maintained, type-safe client SDKs across four major language ecosystems. All SDKs are auto-generated from our OpenAPI 3.1 Specification and include native support for the ASC 606 5-step framework, deterministic revenue waterfalls, and Note 6 disclosure schedules.
SDK Package Registry Overview
| Language / Runtime | Official Package Name | Registry | Installation Command | Project / Documentation Link |
|---|---|---|---|---|
| Node.js / TypeScript | @gaapx/sdk | npm | npm install @gaapx/sdk | npmjs.com/package/@gaapx/sdk |
| Python | gaapx-sdk | PyPI | pip install gaapx-sdk | pypi.org/project/gaapx-sdk/ |
| Go | github.com/gaapx/gaapx-go | pkg.go.dev | go get github.com/gaapx/gaapx-go | pkg.go.dev/github.com/gaapx/gaapx-go |
| Ruby | gaapx-ruby | RubyGems | gem install gaapx-ruby | rubygems.org/gems/gaapx-ruby |
1. Node.js & TypeScript SDK (@gaapx/sdk)
Installation
npm install @gaapx/sdk
# or using pnpm
pnpm add @gaapx/sdk
# or using yarn
yarn add @gaapx/sdk
Usage Example
import { GAAPxClient } from '@gaapx/sdk';
const gaapx = new GAAPxClient({
apiKey: process.env.GAAPX_API_KEY || 'test_sk_gaapx_sandbox_free_tier',
baseUrl: 'https://sandbox.gaapx.ai/v1', // Free instant sandbox
});
async function main() {
// 1. Ingest Contract
const contract = await gaapx.contracts.create({
customer_name: 'Acme Enterprises',
total_value: 120000,
start_date: '2026-01-01',
end_date: '2026-12-31',
});
console.log('Contract created:', contract.id);
// 2. Query Revenue Waterfall
const waterfall = await gaapx.waterfalls.get({
contract_id: contract.id,
start_period: '2026-01',
end_period: '2026-12',
});
console.log('Recognized YTD:', waterfall.total_recognized);
}
main();
2. Python SDK (gaapx-sdk)
Installation
pip install gaapx-sdk
Usage Example
from gaapx import GAAPxClient
client = GAAPxClient(
api_key="test_sk_gaapx_sandbox_free_tier",
base_url="https://sandbox.gaapx.ai/v1"
)
# Ingest and validate contract
contract = client.contracts.create(
customer_name="Globex Corp",
total_value=240000,
start_date="2026-01-01",
end_date="2026-12-31"
)
# Fetch ASC 606 revenue recognition schedule
waterfall = client.waterfalls.get(contract_id=contract.id)
for period in waterfall.periods:
print(f"{period.period}: Recognized ${period.recognized_amount:,.2f}")
3. Go SDK (github.com/gaapx/gaapx-go)
Installation
go get github.com/gaapx/gaapx-go
Usage Example
package main
import (
"context"
"fmt"
"github.com/gaapx/gaapx-go"
)
func main() {
client := gaapx.NewClient("test_sk_gaapx_sandbox_free_tier",
gaapx.WithBaseURL("https://sandbox.gaapx.ai/v1"),
)
waterfall, err := client.Waterfalls.Get(context.Background(), &gaapx.WaterfallParams{
ContractID: "cntr_acme_101",
StartPeriod: "2026-01",
EndPeriod: "2026-12",
})
if err != nil {
panic(err)
}
fmt.Printf("Total Deferred Revenue: $%.2f\n", waterfall.TotalDeferred)
}
4. Ruby SDK (gaapx-ruby)
Installation
gem install gaapx-ruby
Usage Example
require 'gaapx'
GAAPx.configure do |config|
config.api_key = ENV['GAAPX_API_KEY'] || 'test_sk_gaapx_sandbox_free_tier'
config.base_url = 'https://sandbox.gaapx.ai/v1'
end
client = GAAPx::Client.new
contracts = client.contracts.list(query: 'Acme')
puts "Found #{contracts.total} contracts"
Free Sandbox Environment
Every SDK works out-of-the-box with the free instant sandbox token:
- Sandbox Base URL:
https://sandbox.gaapx.ai/v1 - Instant Token:
test_sk_gaapx_sandbox_free_tier - No credit card required.