Documentation API
KuroNeko API Is a fast and free Golang-powered REST API, designed for WhatsApp, Telegram, Discord, and web application bot developers. Check out the complete guide below before starting to call the endpoint
Introduction
KuroNeko API is a free, high performance REST API built with Golang, giving developers a fast and reliable set of JSON endpoints. It's designed for bot developers building on WhatsApp, Telegram, and Discord, as well as anyone integrating quick JSON utilities into a web app.
Every response follows a predictable JSON structure, and every endpoint below is documented individually, where you can browse, inspect, and test each one directly.
Getting Started
- Create an account via /login using Google or GitHub.
- Your API key is generated automatically and can be viewed anytime on your /profile page.
- New accounts start on the free Common tier. Visit /shop if you need a higher daily limit.
- Browse available endpoints below and copy the prepared request example for the one you need.
- Make your first request using your API key, as shown below.
Authentication
KuroNeko API uses simple API key authentication. Every request must include a valid key, either as a query parameter or as a header.
API Key Usage
Pass your key using one of these methods:
| Method | Example |
|---|---|
Query parameter apikey | ?apikey=YOUR_API_KEY |
Query parameter key | ?key=YOUR_API_KEY |
Header X-API-Key | X-API-Key: YOUR_API_KEY |
Your key's tier determines your daily request limit. See Rate Limits below for the full breakdown.
Making Requests
HTTP Methods
All KuroNeko API endpoints are called using GET, with parameters passed through the URL query string. No request body is required.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
apikey | string | Yes* | Your KuroNeko API key. |
key | string | Yes* | Alias for apikey. |
| (varies) | varies | Depends | Additional parameters are specific to each endpoint. Check the endpoint card below for the exact list. |
*Either apikey or key is required, unless you're authenticating via the X-API-Key header.
Query Parameters
Combine your key with additional parameters using &, and make sure values are URL encoded:
GET /api/example?apikey=YOUR_API_KEY&text=Hello%20World
Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Optional | Alternative to the apikey query parameter. |
Accept | Optional | Responses are always returned as application/json. |
Content-Type | Not required | No request body is used for GET requests. |
Request & Response Examples
Request Examples
curl -X GET "https://sylvatica.my.id/api/example?apikey=YOUR_API_KEY"
const response = await fetch("https://sylvatica.my.id/api/example?apikey=YOUR_API_KEY");
const data = await response.json();
console.log(data);
import requests
response = requests.get(
"https://sylvatica.my.id/api/example",
params={"apikey": "YOUR_API_KEY"}
)
data = response.json()
print(data)
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://sylvatica.my.id/api/example?apikey=YOUR_API_KEY")
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
Response Examples
Successful requests return status: true with the payload inside result:
{
"status": true,
"creator": "Dandy",
"result": {
"message": "Hello from KuroNeko API"
}
}
Failed requests return status: false with a clear, readable message:
{
"status": false,
"creator": "Dandy",
"message": "Daily limit reached. Try again after reset at 00:00 WIB."
}
Usage Examples
A typical pattern for handling a bot command with KuroNeko API:
async function handleCommand(sock, chatId, text) {
const response = await fetch(
`https://sylvatica.my.id/api/example?apikey=${process.env.KURONEKO_API_KEY}&text=${encodeURIComponent(text)}`
);
const data = await response.json();
if (data.status) {
await sock.sendMessage(chatId, { text: data.result.message });
} else {
await sock.sendMessage(chatId, { text: `Error: ${data.message}` });
}
}
Error Responses
| Status | Meaning | Common Cause |
|---|---|---|
200 | OK | Request succeeded. |
400 | Bad Request | A required parameter is missing or invalid. |
401 | Unauthorized | No API key was provided. |
403 | Forbidden | API key is invalid, revoked, or the endpoint requires a higher tier. |
404 | Not Found | The endpoint path doesn't exist. |
429 | Too Many Requests | Daily quota reached, or more than 10 requests/second from the same IP. |
500 | Internal Server Error | Unexpected error on the server. |
Rate Limits
Your daily request limit depends on your API key's tier:
Common Troubleshooting
?apikey=, ?key=, or the X-API-Key header on every request.
FAQ
?apikey=YOUR_KEY (atau ?key=YOUR_KEY), atau lewat header X-API-Key.Fetching data...