Official SDKs & Libraries

Use our official client libraries to integrate InjectAPI into your applications with ease. Type-safe, well-documented, and actively maintained.

Overview

InjectAPI provides official SDKs for the most popular programming languages. Each SDK includes:

Type Safety

Full TypeScript support and type definitions for all languages that support them

Error Handling

Comprehensive error types and helpful error messages for debugging

Automatic Retries

Built-in retry logic for transient failures with exponential backoff

Full Documentation

Extensive inline documentation and examples for every method

JavaScript / Node.js

Officialv1.2.0

Installation

npm install @injectapi/sdk

Usage

Basic Examplejavascript
import { InjectAPI } from '@injectapi/sdk';

// Initialize the client
const client = new InjectAPI({
  apiKey: process.env.INJECTAPI_KEY,
});

// Extract product data
const result = await client.extract({
  url: 'https://amazon.com/product/B08N5WRWNW',
  mode: 'product',
});

console.log(result.data);
// {
//   title: "Apple AirPods Pro (2nd Generation)",
//   price: 249.99,
//   currency: "USD",
//   rating: 4.7,
//   ...
// }
Advanced Example with Optionsjavascript
const result = await client.extract({
  url: 'https://example.com/article',
  mode: 'article',
  options: {
    timeout: 30000,        // Request timeout in ms
    retries: 3,            // Number of retry attempts
    webhook: {             // Optional webhook for async results
      url: 'https://your-app.com/webhook',
      events: ['extraction.complete', 'extraction.failed']
    }
  }
});

// Handle errors
try {
  const result = await client.extract({
    url: 'https://invalid-url.com',
    mode: 'product',
  });
} catch (error) {
  if (error instanceof InjectAPIError) {
    console.error('API Error:', error.message);
    console.error('Status Code:', error.statusCode);
    console.error('Error Code:', error.code);
  }
}

Python

Officialv1.1.5

Installation

pip install injectapi

Usage

Basic Examplepython
from injectapi import InjectAPI
import os

# Initialize the client
client = InjectAPI(api_key=os.environ.get('INJECTAPI_KEY'))

# Extract product data
result = client.extract(
    url='https://amazon.com/product/B08N5WRWNW',
    mode='product'
)

print(result.data)
# {
#   'title': 'Apple AirPods Pro (2nd Generation)',
#   'price': 249.99,
#   'currency': 'USD',
#   'rating': 4.7,
#   ...
# }
Advanced Example with Error Handlingpython
from injectapi import InjectAPI, InjectAPIError, RateLimitError

client = InjectAPI(api_key=os.environ.get('INJECTAPI_KEY'))

# With options
result = client.extract(
    url='https://example.com/article',
    mode='article',
    timeout=30,
    retries=3
)

# Error handling
try:
    result = client.extract(
        url='https://invalid-url.com',
        mode='product'
    )
except RateLimitError as e:
    print(f"Rate limit exceeded. Retry after: {e.retry_after}s")
except InjectAPIError as e:
    print(f"API Error: {e.message} (Code: {e.code})")

PHP

Officialv1.0.8

Installation

composer require injectapi/sdk

Usage

Basic Examplephp
<?php

require 'vendor/autoload.php';

use InjectAPI\Client;
use InjectAPI\Exception\InjectAPIException;

// Initialize the client
$client = new Client([
    'api_key' => getenv('INJECTAPI_KEY')
]);

// Extract product data
try {
    $result = $client->extract([
        'url' => 'https://amazon.com/product/B08N5WRWNW',
        'mode' => 'product'
    ]);

    print_r($result->data);
    /*
    Array (
        [title] => Apple AirPods Pro (2nd Generation)
        [price] => 249.99
        [currency] => USD
        [rating] => 4.7
        ...
    )
    */
} catch (InjectAPIException $e) {
    echo "Error: " . $e->getMessage();
    echo "Code: " . $e->getCode();
}

Ruby

Officialv1.0.3

Installation

gem install injectapi

Usage

Basic Exampleruby
require 'injectapi'

# Initialize the client
client = InjectAPI::Client.new(
  api_key: ENV['INJECTAPI_KEY']
)

# Extract product data
result = client.extract(
  url: 'https://amazon.com/product/B08N5WRWNW',
  mode: 'product'
)

puts result.data
# {
#   title: "Apple AirPods Pro (2nd Generation)",
#   price: 249.99,
#   currency: "USD",
#   rating: 4.7,
#   ...
# }

# Error handling
begin
  result = client.extract(
    url: 'https://invalid-url.com',
    mode: 'product'
  )
rescue InjectAPI::RateLimitError => e
  puts "Rate limit exceeded. Retry after: #{e.retry_after}s"
rescue InjectAPI::Error => e
  puts "Error: #{e.message} (Code: #{e.code})"
end

Go

Officialv1.0.6

Installation

go get github.com/injectapi/sdk-go

Usage

Basic Examplego
package main

import (
    "context"
    "fmt"
    "log"
    "os"

    "github.com/injectapi/sdk-go"
)

func main() {
    // Initialize the client
    client := injectapi.NewClient(os.Getenv("INJECTAPI_KEY"))

    // Extract product data
    result, err := client.Extract(context.Background(), &injectapi.ExtractRequest{
        URL:  "https://amazon.com/product/B08N5WRWNW",
        Mode: injectapi.ModeProduct,
    })

    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Title: %s\n", result.Data.Title)
    fmt.Printf("Price: %.2f %s\n", result.Data.Price, result.Data.Currency)
}
Advanced Example with Optionsgo
// With context timeout
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()

result, err := client.Extract(ctx, &injectapi.ExtractRequest{
    URL:  "https://example.com/article",
    Mode: injectapi.ModeArticle,
    Options: &injectapi.ExtractOptions{
        Retries: 3,
        Timeout: 30 * time.Second,
    },
})

// Error handling
if err != nil {
    switch e := err.(type) {
    case *injectapi.RateLimitError:
        fmt.Printf("Rate limit exceeded. Retry after: %v\n", e.RetryAfter)
    case *injectapi.APIError:
        fmt.Printf("API Error: %s (Code: %s)\n", e.Message, e.Code)
    default:
        log.Fatal(err)
    }
    return
}

Community SDKs

These SDKs are maintained by the community. While we don't officially support them, they may be useful for your projects.

Java SDK
Community
Community-maintained Java client
C# / .NET SDK
Community
Community-maintained .NET client
Rust SDK
Community
Community-maintained Rust crate
Swift SDK
Community
Community-maintained Swift package