Developer API

Indiwtf API

REST APIs to check website accessibility, censorship status, and network responses on Indonesian networks.

/api/check?domain=reddit.com&token=YOUR_TOKEN200 OK
{
  "domain": "reddit.com",
  "status": "blocked",
  "ip": "36.86.63.185"
}

Overview

Introduction

The Indiwtf API lets you programmatically check website blocking status in Indonesia. Everything is delivered over REST + JSON.

Base URLhttps://indiwtf.com/api
AuthVia token query parameter
Formatapplication/json

Authentication

Authenticate every request

All endpoints require an API token. Pass it as the token query parameter:

HTTP
GET https://indiwtf.com/api/check?domain=example.com&token=YOUR_API_TOKEN

Don't have a token yet? Pick a plan - your token shows up on the dashboard the moment the subscription settles.

Endpoint

GET /api/check

GET/api/check

Check a domain’s blocking status, along with its resolved IP address.

ParameterTypeDescription
tokenstringRequired. Your API token.
domainstringRequired. The domain to check.

Example request

bash
curl "https://indiwtf.com/api/check?domain=reddit.com&token=YOUR_API_TOKEN"

Blocked response

json
{
  "domain": "reddit.com",
  "status": "blocked",
  "ip": "36.86.63.185"
}

Allowed response

json
{
  "domain": "google.com",
  "status": "allowed",
  "ip": "216.239.38.120"
}

Errors

StatusMessage
401Invalid API token
400Invalid domain format
400Error resolving IP address for {domain}

Endpoint

GET /api/usage

GET/api/usage

Inspect your plan, monthly limit, and how many requests you've made today and this month.

ParameterTypeDescription
tokenstringRequired. Your API token.

Example request

bash
curl "https://indiwtf.com/api/usage?token=YOUR_API_TOKEN"

Response

json
{
  "plan": "basic",
  "term": "monthly",
  "usage": {
    "requests_today": 143,
    "requests_this_month": 2567,
    "total_requests": 2567,
    "limits": { "monthly": 10000 },
    "remaining": { "monthly": 7433 }
  }
}

Errors

StatusMessage
401Invalid API token

Snippets

Code examples

The same /api/check call in a few common languages. Copy, replace the token, ship.

JavaScript

javascript
const TOKEN = "YOUR_API_TOKEN";

async function checkDomain(domain) {
  const url = `https://indiwtf.com/api/check?domain=${domain}&token=${TOKEN}`;
  const res = await fetch(url);
  const data = await res.json();
  if (!res.ok) throw new Error(data.error || `API ${res.status}`);
  return data;
}

checkDomain("reddit.com").then(console.log);

Go

go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

type CheckResponse struct {
	Domain string `json:"domain"`
	Status string `json:"status"`
	IP     string `json:"ip"`
}

func main() {
	url := "https://indiwtf.com/api/check?domain=reddit.com&token=YOUR_API_TOKEN"
	resp, err := http.Get(url)
	if err != nil { panic(err) }
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)

	var out CheckResponse
	if err := json.Unmarshal(body, &out); err != nil { panic(err) }
	fmt.Printf("%s → %s (%s)\n", out.Domain, out.Status, out.IP)
}

Python

python
import requests

TOKEN = "YOUR_API_TOKEN"

def check_domain(domain: str) -> dict:
    r = requests.get(
        "https://indiwtf.com/api/check",
        params={"domain": domain, "token": TOKEN},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

print(check_domain("reddit.com"))

Ready to plug it in?

Grab an API token from any paid plan and you're a single request away from real Indonesian blocking data.