npm package: @sociate/sociate-api-sdk
Description: Javascript client for Sociate AI APIs
Author: Sociate AI
Latest version: 1.0.1

# Sociate API JavaScript SDK

Welcome to the official JavaScript SDK for the Sociate API! This SDK allows developers to easily integrate Sociate's
powerful features into their JavaScript projects, providing seamless access to various functionalities offered by the
Sociate platform. It supports TypeScript for strong typing and enhanced developer experience.

## Features

- **Comprehensive API Coverage**: Access all endpoints available in the Sociate API.
- **Type Safety**: Provides strong type definitions for all requests and responses.
- **Easy Integration**: Simplifies the process of making API requests with minimal configuration.
- **Promise-based**: Fully supports async/await and promises for easy asynchronous operations.

## Installation

Install the SDK using npm or yarn:

`bash
npm install @sociate/sociate-api-sdk
`

or

`bash
yarn add @sociate/sociate-api-sdk
`

## Usage

### Importing the Client

```js
import { SociateClient, SociateConfig } from '@sociate/sociate-api-sdk';
```

### Initialization

Initialize the `SociateClient` with the base URL of the API and an optional authentication token:

```js
const config: SociateConfig = {
  basePath: 'https://api.sociate.ai',
  token: 'your-auth-token'
};

const client = new SociateClient(config);
```

### Authentication

#### Login:

```js
const credentials = { username: 'user@example.com', password: 'password123' };
const authResponse = await client.auth.login(credentials);
client.setToken(authResponse.access_token); // Set token for future requests
```

### Product Management

#### Create Products:

```js
const productData = {
  products: [
    {
      id: '1',
      title: 'Product 1',
      price: 100,
      brand: 'BrandName',
      image_url: 'http://example.com/image1.png',
      url: 'http://example.com/product1',
      price_currency: 'USD'
    }
  ]
};

const createResponse = await client.products.create(productData);
console.log(createResponse);
```

#### Upload Products:

```js
const product = { file: yourFile };
const uploadResponse = await client.products.upload(product);
console.log(uploadResponse);
```

#### Delete Products:

```js
const deleteData = { products: ['1', '2'] };
const deleteResponse = await client.products.delete(deleteData);
console.log(deleteResponse);
```

### Search

#### Basic Search:

```js
const searchParams = { text: 't-shirt' };
const searchResults = await client.search.basic(searchParams);
console.log(searchResults);
```

#### Advanced Search:

```js
const advancedSearchParams = { 
  text_include: 'red', 
  text_exclude: 'blue', 
  filters: { availability: 'available' } 
};
const advancedResults = await client.search.advanced(advancedSearchParams);
console.log(advancedResults);
```

### User Profile

#### Get Current User:

```js
const userInfo = await client.users.me();
console.log(userInfo);
```

### Token Management

You can set or clear the authentication token at any time:

```
client.setToken('new-token');
client.clearToken();
```

## API Documentation

For detailed API documentation and endpoint descriptions, visit
the [Sociate API Documentation](https://api.sociate.ai/redoc).