> ## Documentation Index
> Fetch the complete documentation index at: https://docs.komerza.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Official SDKs for the Komerza API - coming soon

## Overview

We're building official SDKs to make integrating with the Komerza API even easier. These SDKs will provide idiomatic interfaces, automatic error handling, and built-in best practices for each programming language.

<Note>
  All SDKs are currently in development. While you wait, you can use the API
  directly via HTTP requests as shown in our [Quick Start
  Guide](/api-reference/quickstart).
</Note>

## Planned SDKs

<CardGroup cols={2}>
  <Card title=".NET SDK" icon="code">
    **Coming Soon** Full-featured SDK for .NET applications with strong typing
    and async support.
  </Card>

  {" "}

  <Card title="JavaScript/TypeScript SDK" icon="js">
    **Coming Soon** Modern SDK with TypeScript definitions for Node.js and browser
    environments.
  </Card>

  {" "}

  <Card title="Python SDK" icon="python">
    **Coming Soon** Pythonic interface with support for async/await and popular
    frameworks.
  </Card>

  {" "}

  <Card title="PHP SDK" icon="php">
    **Coming Soon** Modern PHP SDK with Composer support and PSR-compliant design.
  </Card>

  <Card title="Go SDK" icon="golang">
    **Coming Soon** Idiomatic Go SDK with proper error handling and context
    support.
  </Card>
</CardGroup>

## SDK Previews

Here's what the SDK interfaces will look like:

<CodeGroup>
  ```csharp .NET theme={null}
  using Komerza.Api;

  var client = new KomerzaClient("your-api-key");

  // Get store information
  var store = await client.Stores.GetAsync(storeId);

  // List products with pagination
  var products = await client.Products.ListAsync(storeId, new ProductListOptions
  {
      Page = 1,
      PageSize = 20
  });

  // Create a new product
  var newProduct = await client.Products.CreateAsync(storeId, new CreateProductRequest
  {
      Name = "New Product",
      Price = 29.99m,
      Currency = "USD"
  });
  ```

  ```javascript JavaScript/TypeScript theme={null}
  import { KomerzaClient } from "@komerza/api";

  const client = new KomerzaClient("your-api-key");

  // Get store information
  const store = await client.stores.get(storeId);

  // List products with pagination
  const products = await client.products.list(storeId, {
    page: 1,
    pageSize: 20,
  });

  // Create a new product
  const newProduct = await client.products.create(storeId, {
    name: "New Product",
    price: 29.99,
    currency: "USD",
  });
  ```

  ```python Python theme={null}
  from komerza import KomerzaClient

  client = KomerzaClient('your-api-key')

  # Get store information
  store = await client.stores.get(store_id)

  # List products with pagination
  products = await client.products.list(store_id, page=1, page_size=20)

  # Create a new product
  new_product = await client.products.create(store_id, {
      'name': 'New Product',
      'price': 29.99,
      'currency': 'USD'
  })
  ```

  ```php PHP theme={null}
  <?php

  use Komerza\Api\KomerzaClient;

  $client = new KomerzaClient('your-api-key');

  // Get store information
  $store = $client->stores->get($storeId);

  // List products with pagination
  $products = $client->products->list($storeId, [
      'page' => 1,
      'pageSize' => 20
  ]);

  // Create a new product
  $newProduct = $client->products->create($storeId, [
      'name' => 'New Product',
      'price' => 29.99,
      'currency' => 'USD'
  ]);
  ```

  ```go Go theme={null}
  package main

  import (
      "context"
      "github.com/komerza/go-sdk"
  )

  func main() {
      client := komerza.NewClient("your-api-key")
      ctx := context.Background()

      // Get store information
      store, err := client.Stores.Get(ctx, storeID)
      if err != nil {
          // Handle error
      }

      // List products with pagination
      products, err := client.Products.List(ctx, storeID, &komerza.ProductListOptions{
          Page:     1,
          PageSize: 20,
      })

      // Create a new product
      newProduct, err := client.Products.Create(ctx, storeID, &komerza.CreateProductRequest{
          Name:     "New Product",
          Price:    29.99,
          Currency: "USD",
      })
  }
  ```
</CodeGroup>

## Get Notified

Want to be the first to know when an SDK is released?

<CardGroup cols={2}>
  <Card title="Join Our Community" icon="users" href="https://t.me/komerzaecom">
    Get updates in our Telegram developer community
  </Card>

  <Card title="Follow on GitHub" icon="github" href="https://github.com/komerza">
    Watch our GitHub organization for new SDK releases
  </Card>
</CardGroup>

## In the Meantime

While waiting for the official SDKs, you can:

### Use the REST API Directly

Follow our [Quick Start Guide](/api-reference/quickstart) to start building with HTTP requests right away.

### Build Your Own Wrapper

Create a simple wrapper around the API for your specific use case. Our [API Reference](/api-reference/introduction) provides all the details you need.

### Community SDKs

Check if there are any community-built SDKs available. We'll showcase quality community contributions here.

## Contributing

Interested in contributing to an SDK or building one for another language?

<Card title="Contact Us" icon="envelope" href="mailto:support@komerza.com?subject=SDK Development">
  Get in touch about SDK development opportunities
</Card>

We welcome contributions and are happy to work with the community to build SDKs for additional programming languages and frameworks.

## Stay Updated

<CardGroup cols={2}>
  <Card title="Help Center" icon="messages-question" href="https://docs.komerza.com">
    Check our help center for SDK documentation as it becomes available
  </Card>

  <Card title="API Documentation" icon="book" href="/api-reference/introduction">
    Learn the API while waiting for your preferred SDK
  </Card>
</CardGroup>
