Table of Contents


You'll need to add corresponding anchor tags (e.g., <a name="introduction"></a>) within your markdown document for each section you want to link to. This will allow users to click on the links in the table of contents and be taken directly to the relevant section.

Example of an anchor tag for the Introduction section:

Remember to replace the placeholder section titles and anchor names with the actual ones from your document. This approach allows for clickable links within a single markdown document.

Please note that this method of creating clickable links within a markdown document may not be supported by all markdown renderers. Some platforms might require specific syntax or plugins to enable this functionality. You should check the documentation of your markdown renderer for more information.

chatapi.ai-now.space API Documentation

This API provides access to a variety of large language models (LLMs) for chat completions, token counting, and moderation.

Authentication

You need an API key to use this API. To obtain an API key, please contact [email protected].

Once you have an API key, include it in the Authorization header of your requests as a Bearer token:

Authorization: Bearer YOUR_API_KEY

Endpoints

/models

Method: GET

Description: Returns a list of available models with their associated input and output costs.

Response:

{
  "data": [
    {
      "id": "Claude 3.5 Sonnet",
      "inputCost": 0.002,
      "outputCost": 0.003
    },
    {
      "id": "GPT-4 Turbo",
      "inputCost": 0.03,
      "outputCost": 0.06
    },
    // ... other models
  ]
}

/chat/completions

Method: POST

Description: Generates chat completions using the specified model.

Request Body:

{
  "model": "MODEL_NAME", // See the list of supported models below
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "What is the capital of France?"
    }
  ],
  "stream": true/false, // Optional, defaults to false
  // ... other parameters (see model-specific documentation)
}

Response (Non-Streaming):

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "MODEL_NAME",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris."
      },
      "finish_reason": "stop"
    }
  ],
  "input_tokens": ...,
  "output_tokens": ...,
  "input_tokens_cost": ...,
  "output_tokens_cost": ...,
  "total_tokens_cost": ...,
  "total_time_taken": ...,
  "tokens_per_second": ...
}

Response (Streaming):

data: {"id": "chatcmpl-...", "object": "chat.completion.chunk", "created": 1677652288, "model": "MODEL_NAME", "choices": [{"index": 0, "delta": {"content": "The"}, "finish_reason": null}]}

data: {"id": "chatcmpl-...", "object": "chat.completion.chunk", "created": 1677652288, "model": "MODEL_NAME", "choices": [{"index": 0, "delta": {"content": " capital"}, "finish_reason": null}]}

data: {"id": "chatcmpl-...", "object": "chat.completion.chunk", "created": 1677652288, "model": "MODEL_NAME", "choices": [{"index": 0, "delta": {"content": " of"}, "finish_reason": null}]}

// ... more chunks

data: {"id": "chatcmpl-...", "object": "chat.completion.chunk", "created": 1677652288, "model": "MODEL_NAME", "choices": [{"index": 0, "delta": {"content": " is Paris."}, "finish_reason": "stop"}]}

data: {"input_tokens": ..., "output_tokens": ..., "input_tokens_cost": ..., "output_tokens_cost": ..., "total_tokens_cost": ..., "total_time_taken": ..., "tokens_per_second": ..., "time_to_first_data": ...}

/tokens

Method: POST

Description: Counts the number of tokens in a given text.

Request Body:

{
  "text": "Your text here"
}

Response:

{
  "tokens": 123
}

/credits

Method: GET

Description: Returns the remaining credits for your API key.

Response:

{
  "credits": 1000
}

/moderate

Method: POST

Description: Moderates the given input text using OpenAI's moderation API.

Request Body:

{
  "input": "Your text here"
}

Response:

{
  "results": [
    {
      "categories": {
        "hate": false,
        "hate/threatening": false,
        // ... other categories
      },
      "category_scores": {
        "hate": 0.0000000000000000,
        "hate/threatening": 0.0000000000000000,
        // ... other category scores
      },
      "flagged": false
    }
  ]
}

Supported Models

You can easily copy the model names below and use them in your requests.

Claude 3.5 Sonnet
GPT-4 Turbo
Gemini 1.5 Pro Exp
Deepseek Chat
Llama 3.1 405b
Mixtral 8x7b
GPT-4o
Command-R Plus
Mixtral-8x22B-Instruct-v0.1
GLM-4
Llama-3-70b-chat-hf
WizardLM-13B-V1.2
Command-R Plus Online
Meta-Llama-3.1-405B-Instruct-Turbo

Usage Examples Python

Non-Streaming Example (using GPT-4 Turbo):

import requests

headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}

data = {
    'model': 'GPT-4 Turbo',
    'messages': [
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'What is the capital of France?'}
    ]
}

response = requests.post('https://chatapi.ai-now.space/chat/completions', headers=headers, json=data)

print(response.json())

Streaming Example (using Claude 3.5 Sonnet):

import requests

headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}

data = {
    'model': 'Claude 3.5 Sonnet',
    'messages': [
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'Write a short poem about the sea.'}
    ],
    'stream': True
}

response = requests.post('https://chatapi.ai-now.space/chat/completions', headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        if decoded_line.startswith('data: '):
            print(decoded_line[6:])

C# Examples

Non-Streaming Example (using GPT-4 Turbo):

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ChatCompletionExample
{
    public static async Task Main(string[] args)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_API_KEY");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var requestBody = new
            {
                model = "GPT-4 Turbo",
                messages = new[]
                {
                    new { role = "system", content = "You are a helpful assistant." },
                    new { role = "user", content = "What is the capital of France?" }
                }
            };

            var json = JsonConvert.SerializeObject(requestBody);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("https://chatapi.ai-now.space/chat/completions", content);
            var responseString = await response.Content.ReadAsStringAsync();

            Console.WriteLine(responseString);
        }
    }
}

Streaming Example (using Claude 3.5 Sonnet):

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class ChatCompletionStreamingExample
{
    public static async Task Main(string[] args)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_API_KEY");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var requestBody = new
            {
                model = "Claude 3.5 Sonnet",
                messages = new[]
                {
                    new { role = "system", content = "You are a helpful assistant." },
                    new { role = "user", content = "Write a short poem about the sea." }
                },
                stream = true
            };

            var json = JsonConvert.SerializeObject(requestBody);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("https://chatapi.ai-now.space/chat/completions", content);

            using (var stream = await response.Content.ReadAsStreamAsync())
            using (var reader = new System.IO.StreamReader(stream))
            {
                string line;
                while ((line = await reader.ReadLineAsync()) != null)
                {
                    if (line.StartsWith("data: "))
                    {
                        Console.WriteLine(line.Substring(6));
                    }
                }
            }
        }
    }
}

Node.js Examples

Non-Streaming Example (using GPT-4 Turbo):

const axios = require('axios');

const headers = {
  'Authorization': 'Bearer YOUR_API_KEY',
  'Content-Type': 'application/json'
};

const data = {
  model: 'GPT-4 Turbo',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'What is the capital of France?' }
  ]
};

axios.post('https://chatapi.ai-now.space/chat/completions', data, { headers })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

Streaming Example (using Claude 3.5 Sonnet):

const axios = require('axios');

const headers = {
  'Authorization': 'Bearer YOUR_API_KEY',
  'Content-Type': 'application/json'
};

const data = {
  model: 'Claude 3.5 Sonnet',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Write a short poem about the sea.' }
  ],
  stream: true
};

axios.post('https://chatapi.ai-now.space/chat/completions', data, { headers, responseType: 'stream' })
  .then(response => {
    response.data.on('data', (chunk) => {
      const lines = chunk.toString().split('\n');
      lines.forEach(line => {
        if (line.startsWith('data: ')) {
          console.log(line.substring(6));
        }
      });
    });
  })
  .catch(error => {
    console.error(error);
  });

Remember to replace YOUR_API_KEY with your actual API key.

These examples demonstrate how to interact with the chatapi.ai-now.space API using C# and Node.js for both streaming and non-streaming responses. You can adapt these examples to use different models and parameters as needed.