Overview
What SilentAPI is and how it works
SilentAPI is a privacy-focused API platform for AI models and developer services. One API key and balance work across supported services. SilentAPI does not keep your prompts or outputs for normal API calls. SilentAPI does not send your account identifiers or IP address to providers.
How It Works
Send a request to the endpoint with your SilentAPI API key. SilentAPI returns the selected model's response. It charges your balance for the request. Use the API format that your application needs.
Base URLs
| Network | Base URL |
|---|---|
| Public internet | https://api.silentapi.com/v1 |
| Tor | http://zwcbz3ftcbwhr2ercjghbozbqjj544mhwqd7guvjrxv2dkzwlq2prpyd.onion/v1 |
| I2P | http://ztkguqwo54vcgdgnji75k65exenh2hyznyfl4o7i5e3tin7padba.b32.i2p/v1 |
The Tor and I2P addresses also serve this website.
Quick Start
- Create an account on the SilentAPI home page.
- Generate an API key on the Keys page.
- Add credits on the Recharge page.
- Send your first request:
curl https://api.silentapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gemini-3.8-flash",
"messages": [{"role":"user","content":"What is SilentAPI?"}],
"reasoning_effort": "medium"
}'
API Styles
SilentAPI supports these API request formats. They share the same key and balance. Use the format that matches your SDK:
- OpenAI Style: OpenAI Chat Completions API, Completions API, and Responses API.
- Anthropic Style: Anthropic Messages API at
/v1/messages. - Gemini Style:
generateContentandstreamGenerateContentunder/v1beta/models/{model}.
See the individual pages for each style in the sidebar.
Pricing
Prices are in credits. One credit equals $0.01 USD. Token services use input and output prices. The request charge uses the tokens and units reported by the service.
See Billing & Credits for details. Current prices are on the Services page and Calculator.
The site chat uses gemini-3.8-flash with medium thinking by default.
Privacy Labels
ZDR means zero data retention.
Each model shows one privacy label on the Services page. Hover the label to read its meaning.
| Label | Meaning |
|---|---|
| End-to-end ZDR | SilentAPI does not keep your prompts or outputs, and the provider route has zero data retention. |
| SilentAPI protected | SilentAPI does not keep your prompts or outputs. The provider may keep logs under its own terms. |
Lookup Services
Send lookup values in the JSON body. Do not put API keys or lookup values in a URL.
IP Lookup
curl https://api.silentapi.com/v1/silentapi/ip-lookup \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"ip":"9.9.9.9"}'
Each call costs 0.001 credits. IP data updates daily. The response does not include history fields or the complete network range.
Example response:
{
"status": "ok",
"9.9.9.9": {
"network": {
"asn": "AS64500",
"as_name": "Example Network",
"organisation": "Example Network",
"isp": "Example Network",
"type": "hosting"
},
"location": {
"continent": "North America",
"continent_code": "NA",
"country": "United States",
"country_code": "US",
"region": "Example Region",
"city": "Example City",
"latitude": 40.7,
"longitude": -74.0
},
"detections": {
"proxy": false,
"vpn": false,
"tor": false,
"hosting": true,
"cloud": false,
"risk": 40
}
},
"cost": 0.001
}
hosting is true for data center and hosting addresses. cloud is true when the address is in the published address ranges of a public cloud provider. Cloud addresses also count as hosting.
Some values can be unknown:
| Case | Response |
|---|---|
| Unknown location or network value | The field is absent |
| Unknown ASN | The asn field is absent |
| Reserved IP address | The address field contains {"ip":"127.0.0.1","type":"reserved"} |
Email Lookup
curl https://api.silentapi.com/v1/silentapi/email-lookup \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"email":"example@example.com"}'
Each call costs 0.001 credits. Email lists update daily. The lookup checks the email format and its domain. It also checks mail servers and disposable domains. It does not prove that a mailbox exists.
Example response:
{
"status": "ok",
"example@example.com": {
"valid": true,
"detections": { "disposable": false }
},
"cost": 0.001
}
Media and OCR
The media endpoints process files. OCR reads text from documents and images. See Media and OCR for the supported services and request limits.
Service Status
Read live status on [ Status ]. You can also read status from the API. The status endpoints need no API key.
| Method | Path | Description |
|---|---|---|
| GET | /status | Current status and uptime of each group |
| GET | /status/history | Current status and uptime, with latency and history buckets |
curl https://api.silentapi.com/status/history
Both endpoints are cached for 60 seconds. Each address can send 60 requests per minute. More requests return HTTP 429 with Retry-After: 60. Browser apps can call these endpoints from any origin.
Status Response
| Field | Type | Meaning |
|---|---|---|
| updated_at | string | Time of the data in ISO 8601 format, in UTC |
| groups | array | One item for each service group |
| groups[].id | string | Group ID: website, api, tor, or i2p |
| groups[].name | string | Group name: Website, API, Tor, or I2P |
| groups[].status | string | Current status. See the status values below. |
| groups[].uptime.24h | number or null | Uptime percentage for the last 24 hours |
| groups[].uptime.30d | number or null | Uptime percentage for the last 30 days |
| groups[].uptime.365d | number or null | Uptime percentage for the last 365 days |
Uptime is the percentage of successful checks, with up to two decimal places. It is null when no checks exist for that period.
| Status | Meaning |
|---|---|
| operational | All checks in the last 5 minutes passed |
| degraded | Some checks in the last 5 minutes failed |
| down | All checks failed in the 3 most recent minutes |
| unknown | No checks exist for the last 5 minutes |
History Response
GET /status/history returns the status response. It adds these fields to each group:
| Field | Type | Meaning |
|---|---|---|
| latency_ms | integer or null | Average latency for the last 24 hours, in milliseconds |
| days | array | 30 daily buckets, oldest first |
| hours | array | 24 hourly buckets, oldest first |
| weeks | array | 52 weekly buckets, oldest first. Each bucket is 7 days. The last bucket ends today. |
Each bucket has these fields:
| Field | Type | Meaning |
|---|---|---|
| t | integer | Start of the bucket. See the table below. |
| up | integer | Number of successful checks |
| total | integer | Number of all checks |
| latency_ms | integer or null | Average latency of successful checks, in milliseconds |
| Bucket | Value of t |
|---|---|
| days | UTC day number: floor(ms / 86400000) |
| hours | UTC hour number: floor(ms / 3600000) |
| weeks | UTC day number of the first day of the week |
ms is the time in milliseconds since the Unix epoch. A bucket with no checks has up and total set to 0 and latency_ms set to null.
Latency is the server response time of successful checks. Failed checks count as downtime. They do not count in latency.