Skip to main content

SDK Overview

Unizo provides official SDKs for popular programming languages to make integration with our APIs simple and efficient. Our SDKs handle authentication, rate limiting, error handling, and provide type-safe interfaces for all API endpoints.

Available SDKs

JavaScript/TypeScript

  • Package: @unizo/sdk
  • Runtime: Node.js 16+ and modern browsers
  • Features: Full TypeScript support, automatic retries, built-in rate limiting

View JavaScript SDK Documentation →

Python

  • Package: unizo-python
  • Version: Python 3.8+
  • Features: Async/await support, Pydantic models, comprehensive error handling

View Python SDK Documentation →

Java

  • Package: com.unizo:unizo-java
  • Version: Java 11+
  • Features: OkHttp client, Jackson serialization, Spring Boot integration

View Java SDK Documentation →

Ruby

  • Package: unizo-ruby
  • Version: Ruby 2.7+
  • Features: Faraday HTTP client, automatic pagination, Rails integration

View Ruby SDK Documentation →

PHP

  • Package: unizo/php-sdk
  • Version: PHP 8.0+
  • Features: PSR-7 compatible, Guzzle HTTP client, Laravel integration

View PHP SDK Documentation →

Go

  • Package: github.com/unizo-ai/unizo-go
  • Version: Go 1.19+
  • Features: Context support, structured errors, concurrent safe

View Go SDK Documentation →

Quick Start

All SDKs follow similar patterns for initialization and usage:

Installation

# JavaScript/Node.js
npm install @unizo/sdk

# Python
pip install unizo-python

# Java (Maven)
<dependency>
<groupId>com.unizo</groupId>
<artifactId>unizo-java</artifactId>
<version>1.0.0</version>
</dependency>

# Ruby
gem install unizo-ruby

# PHP
composer require unizo/php-sdk

# Go
go get github.com/unizo-ai/unizo-go

Basic Usage

// JavaScript
import { Unizo } from '@unizo/sdk';

const client = new Unizo({
apiKey: process.env.UNIZO_API_KEY
});

const vulnerabilities = await client.security.vulnerabilities.list();
# Python
from unizo import Unizo

client = Unizo(api_key=os.environ['UNIZO_API_KEY'])
vulnerabilities = await client.security.vulnerabilities.list()
// Java
import com.unizo.UnizoClient;

UnizoClient client = UnizoClient.builder()
.apiKey(System.getenv("UNIZO_API_KEY"))
.build();

List<Vulnerability> vulnerabilities = client.security().vulnerabilities().list();

Common Features

All SDKs include these features:

Authentication

  • API key authentication
  • Automatic token refresh
  • Support for multiple environments

Error Handling

  • Structured error responses
  • Automatic retry with exponential backoff
  • Rate limit handling

Type Safety

  • Full type definitions for all API endpoints
  • IDE autocompletion and IntelliSense
  • Compile-time error checking

Pagination

  • Automatic pagination handling
  • Iterator patterns for large datasets
  • Configurable page sizes

Rate Limiting

  • Built-in rate limit respect
  • Automatic throttling
  • Configurable retry policies

Configuration Options

All SDKs support comprehensive configuration:

const client = new Unizo({
apiKey: 'your-api-key',
baseUrl: 'https://api.unizo.ai/v1', // Custom base URL
timeout: 30000, // Request timeout in ms
retries: 3, // Number of retries
rateLimit: {
maxRequests: 60, // Requests per minute
perMinute: true
},
debug: false // Enable debug logging
});

Fetching Vulnerabilities

// Get all high-severity vulnerabilities
const vulnerabilities = await client.security.vulnerabilities.list({
severity: 'high',
status: 'open'
});

console.log(`Found ${vulnerabilities.length} high-severity vulnerabilities`);
vulnerabilities.forEach(vuln => {
console.log(`- ${vuln.title} (${vuln.id})`);
});

Managing Deployments

// Trigger a deployment
const deployment = await client.development.deployments.create({
environment: 'production',
version: 'v1.2.3',
repository: 'my-app'
});

// Monitor deployment status
const status = await client.development.deployments.get(deployment.id);
console.log(`Deployment status: ${status.state}`);

Sending Notifications

// Send a Slack notification
await client.communication.messages.send({
channel: '#alerts',
text: 'Deployment completed successfully!',
provider: 'slack'
});

Testing

All SDKs include testing utilities:

// JavaScript testing with Jest
import { createMockUnizo } from '@unizo/sdk/testing';

const mockClient = createMockUnizo();
mockClient.security.vulnerabilities.list.mockResolvedValue([
{ id: 'vuln_1', title: 'Test Vulnerability', severity: 'high' }
]);

Migration Guides

From REST API

If you're currently using the REST API directly, our SDKs provide a smoother experience:

// Before: Manual HTTP requests
const response = await fetch('https://api.unizo.ai/v1/security/vulnerabilities', {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
const vulnerabilities = await response.json();

// After: Using SDK
const vulnerabilities = await client.security.vulnerabilities.list();

Version Updates

We follow semantic versioning for all SDKs. Check our changelog for breaking changes and migration guides.

Contributing

All SDKs are open source and welcome contributions:

Next Steps

  • Choose your preferred SDK and follow the detailed documentation
  • Check out our API Reference for endpoint details
  • Explore code examples in our repository