EN ▾
Get your key
per 1M input tokens$0.15
Output tokens / 1M$0.50
token context100,000
trial credit$0.50
requests per minute300

Uncensored, OpenAI-compatible LLM API

Hermes api Documentation: Quickstart

The hermes API is a hosted, OpenAI-compatible endpoint serving one uncensored large language model. Use the base URL HTTPS://api.apihermes.cc/v1 with your key to send text and receive text.

Installation and Setup

The hermes API works with any client that speaks the OpenAI format. You need a base URL and an API key. Create an account via Google or email on the Get API key page. The system shows your key immediately. No phone number is required. You receive $0.50 trial credit for seven days. Top up later with crypto only.

  • Base URL: HTTPS://api.apihermes.cc/v1
  • Auth header: Authorization: Bearer YOUR_API_KEY
  • Model ID: uncensored

Install your preferred SDK and set the base URL. The endpoint expects standard chat completion parameters. Keep your key secure. One key replaces the previous one if you generate a new one.

Basic Chat Completion Request

A basic request sends messages and receives a text response. The model ID is uncensored. It handles lawful adult content without refusal. You pay per token used. Errors and refusals cost nothing. The context window holds 100,000 tokens total.

Structure your request with a system message and user message. The API returns a completion. You can set max_tokens to control output length. The default output limit is 2,048 tokens. You can raise this to 16,000 tokens per request. Streaming works via SSE. Function calling is available. JSON mode is supported.

curl https://api.apihermes.cc/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Generate a GET request for the user endpoint"}]
  }'

The request body is limited to 8 MB. Rate limits are 300 requests per minute. Concurrency is eight requests at once. Retry logic handles server overload gracefully.

Streaming Responses with SSE

Streaming delivers tokens as they are generated. The server sends Server-Sent Events. Each chunk contains partial text. The final chunk includes token usage statistics. This approach reduces perceived latency for long responses. It is ideal for chat interfaces. You must handle the stream correctly. Disconnects may occur. The API does not guarantee delivery order beyond the stream itself.

Set the stream parameter to true. Parse the data lines. Concatenate the content. Check the finish_reason for completion. The model uncensored works with any OpenAI-compatible SDK. Configure the client to handle SSE. Monitor the token count. The base URL remains the same. Auth is identical. No extra setup is needed.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Errors appear in the stream. Handle them by closing the connection. The prepaid credit deducts only for completed tokens. This saves money during interruptions. You never pay for partial garbage output. The system is transparent.

Using Function Calling and Tools

Function calling allows the model to execute code or tools. Define tools in the request body. The model returns a tool call. You execute the tool. You send the result back. The model generates a final response. This enables complex workflows. It is not just a chat wrapper. The API supports tools and tool_choice. Use this for agents or automation.

Structure the tools array. Include name, description, and parameters. The model decides when to call a tool. You must parse the arguments. Execute the function. Pass the output to the conversation. The model continues. This cycle repeats until the final answer. The context window tracks all tool interactions. Keep track of token usage. Costs add up with tool outputs. Monitor the usage in the final chunk.

from openai import OpenAI

client = OpenAI(base_url="https://api.apihermes.cc/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

The uncensored model handles diverse tool schemas. It does not refuse based on content. Use this for roleplay or technical tasks. The API is reliable. Errors are free. The prepaid system ensures fairness. You control the flow. The base URL is consistent. Auth is simple.

JSON Mode and Parameters

JSON mode forces the model to output valid JSON. Set response_format to json_object. This is useful for structured data. The model avoids markdown wrappers. It returns raw JSON. Use this for parsing. It improves reliability. The context window still applies. You pay for tokens. The uncensored model respects the format. It does not refuse based on content.

Parameters include temperature, top_p, stop, seed, presence_penalty, and frequency_penalty. Temperature controls randomness. Top_p controls diversity. Stop sequences halt generation. Seed ensures reproducibility. Presence and frequency penalties adjust token usage. Set these to refine the output. The API supports all standard parameters. Use them to tune the response. The base URL remains the same. Auth is identical.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apihermes.cc/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Errors are handled via HTTP status codes. 401 means invalid key. 402 means no credit. 429 means rate limit. Handle these in your code. The prepaid credit deducts only for completed tokens. This ensures fairness. You never pay for partial output. The system is transparent. The uncensored model is reliable. Use it for any lawful task.

Error Handling and Rate Limits

The API returns standard HTTP status codes. 401 indicates an invalid API key. 402 indicates insufficient prepaid credit. 429 indicates a rate limit. The limit is 300 requests per minute. Concurrency is eight requests at once. Request bodies are limited to 8 MB. Handle these errors gracefully. Retry with exponential backoff. The uncensored model does not refuse lawful content. Errors are free. You do not pay for failed requests. The prepaid credit is secure. It never expires. Use the Support page for double charges. Crypto only. USDT or USDC. Bonuses apply.

Frequently asked questions

What is the hermes API base URL and model ID?

The base URL is HTTPS://api.apihermes.cc/v1. The model ID is uncensored. It is an open-weight model tuned for no refusals. Use any OpenAI-compatible SDK with these values.

How does pricing work with the hermes API?

You pay $0.15 per 1M input tokens and $0.50 per 1M output tokens. Errors and refusals are free. Prepaid credit never expires. Top up with crypto only. No subscription is required.

What are the rate limits for the hermes API?

The limit is 300 requests per minute per key. Concurrency is eight requests at once. Request bodies are limited to 8 MB. Use retry logic for 429 errors. The uncensored model handles high volume reliably.

Get your API key in seconds

Register, retrieve your key, and update your endpoint URL. That’s all there is to it.

Get your key