Other Languages
We provide official SDKs for TypeScript and Python. For all other languages, you can auto-generate a client from our OpenAPI spec or use the REST API directly.
OpenAPI Spec
Our full API specification is available at:
https://docs.sharpapi.io/openapi.jsonThis is a standard OpenAPI 3.1.0 spec with 34 endpoints, 27 schemas, and full request/response examples. You can use it with any OpenAPI-compatible code generator.
Auto-Generate a Client
Using openapi-generator
The most popular generator supports 50+ languages. Install it and generate a client in one command:
Go
# Install
brew install openapi-generator # macOS
# or: npm install -g @openapitools/openapi-generator-cli
# Generate Go client
openapi-generator generate \
-i https://docs.sharpapi.io/openapi.json \
-g go \
-o ./sharpapi-go \
--additional-properties=packageName=sharpapipackage main
import (
"context"
"fmt"
sharpapi "sharpapi"
)
func main() {
cfg := sharpapi.NewConfiguration()
cfg.AddDefaultHeader("X-API-Key", "sk_live_...")
client := sharpapi.NewAPIClient(cfg)
odds, _, err := client.OddsAPI.GetOdds(context.Background()).
League("nba").
Execute()
if err != nil {
panic(err)
}
fmt.Printf("Got %d odds\n", len(odds.Data))
}Using openapi-fetch (TypeScript alternative)
If you prefer a lighter TypeScript client without our full SDK:
npm install openapi-fetch openapi-typescript
npx openapi-typescript https://docs.sharpapi.io/openapi.json -o ./sharpapi.d.tsimport createClient from 'openapi-fetch'
import type { paths } from './sharpapi'
const api = createClient<paths>({
baseUrl: 'https://api.sharpapi.io/api/v1',
headers: { 'X-API-Key': 'sk_live_...' },
})
const { data } = await api.GET('/odds', {
params: { query: { league: 'nba' } },
})Plain REST API
No SDK needed — our API is standard REST with JSON responses. Any HTTP client works:
curl
curl -H "X-API-Key: sk_live_..." \
"https://api.sharpapi.io/api/v1/odds?league=nba"SSE Streaming
SSE works with any language that supports EventSource or HTTP streaming. See the streaming docs for the event protocol.
Auto-generated clients do not include SSE streaming support. For real-time streaming, use our TypeScript SDK or implement the SSE protocol directly — it’s just a long-lived HTTP GET with text/event-stream content type.