Referensi API

testingapis.com adalah API gratis untuk menguji klien HTTP. Ada 360 endpoint dalam 53 grup: resource realistis seperti produk, buku, dan negara, ditambah endpoint untuk kode status, redirect, cookie, caching, skema autentikasi, format file, streaming, dan injeksi kegagalan. Echo, metode HTTP, kode status, serta resource products, posts, dan todos tidak butuh akun. Sisanya butuh akun gratis.

URL dasar
https://api.testingapis.com
Mulai cepat
fetch('https://api.testingapis.com/api/Products?limit=3')
  .then(res => res.json())
  .then(data => console.log(data))

Penemuan

ApaDi mana
Dokumen OpenAPI 3.0https://api.testingapis.com/openapi/v1.jsonMasuk untuk melihat
Swagger UIhttps://api.testingapis.com/swagger/index.htmlMasuk untuk melihat
Katalog rute langsungGET https://api.testingapis.com/apiMasuk untuk melihat
Health check
GET https://api.testingapis.com/api/healthGET https://api.testingapis.com/api/health/liveGET https://api.testingapis.com/api/health/ready
GraphQL
POST https://api.testingapis.com/graphql
Query dan mutation
WebSockets
wss://api.testingapis.com/ws/echowss://api.testingapis.com/ws/ticker

Autentikasi

Endpoint tanpa catatan autentikasi bersifat publik. Endpoint yang menguji autentikasi menerima kredensial uji tetap di bawah. Kredensial ini bukan rahasia.

SkemaCara mengirimnyaNilai ujiDipakai oleh
HTTP BasicAuthorization: Basic base64(user:pass)apibee / password123 · Admin / Admin@1234 (API asli)/api/auth/basic*, /api/AuthTest/secure-data
Bearer (static)Authorization: Bearer <token>apibee-token-123 · admin-token · user-token · readonly-token/api/auth/bearer, /api/auth/roles/*
JWTAuthorization: Bearer <jwt>POST /api/auth/jwt/login dengan admin / admin123 atau user / user123 · POST /api/User/Login dengan Michael / Thompson/api/auth/jwt/me, /api/auth/jwt/admin, /api/Admin/authorize
API keyHeader X-API-Key, ?api_key= atau cookie api_keyapibee-key-123/api/auth/api-key/*
OAuth 2.0Authorization: Bearer <access_token>Klien apibee-client / apibee-secret dan apibee-public (PKCE) · pengguna apibee / password123, jane / jane123/api/auth/oauth/protected, /userinfo
OAuth 1.0aAuthorization: OAuth oauth_consumer_key="…", oauth_signature="…", …Consumer apibee-consumer-key / apibee-consumer-secret · token apibee-access-token / apibee-token-secret (tidak pernah kedaluwarsa) · HMAC-SHA1, HMAC-SHA256, HMAC-SHA512 atau PLAINTEXT/api/auth/oauth1, /api/auth/oauth1/*
DigestChallenge dan response RFC 7616apibee / password123/api/auth/digest
Tanda tangan HMACHeader X-Timestamp dan X-SignatureSecret apibee-hmac-secret/api/auth/hmac
Cookie sesiCookie apibee_sessionPOST /api/cookies/login dengan test / test123 atau admin / admin123/api/cookies/me
CSRFCookie XSRF-TOKEN dan header X-CSRF-TokenToken dari GET /api/auth/csrf/token/api/auth/csrf/submit

401 berarti kredensial tidak ada atau tidak valid. 403 berarti kredensial valid tetapi tidak diizinkan, misalnya user-token di /api/auth/roles/admin.

Contoh memakai placeholder ini untuk nilai yang berubah di setiap putaran:

PlaceholderCara mendapatkannya
{{userJwt}} / {{adminJwt}}accessToken dari POST /api/auth/jwt/login dengan user / user123 atau admin / admin123.
{{refreshToken}}refreshToken dari POST /api/auth/jwt/login.
{{legacyJwt}}token dari POST /api/User/Login dengan Michael / Thompson (role Admin).
{{oauthAccessToken}}access_token dari POST /api/auth/oauth/token.
{{oauth1RequestToken}} / {{oauth1RequestSecret}} / {{oauth1Verifier}}oauth_token dan oauth_token_secret dari POST /api/auth/oauth1/request_token dengan oauth_callback=oob, lalu oauth_verifier dari GET /api/auth/oauth1/authorize.
{{csrfToken}}token dari GET /api/auth/csrf/token. Nilai yang sama juga dipasang sebagai cookie XSRF-TOKEN.
{{sessionId}}Cookie apibee_session yang dipasang oleh POST /api/cookies/login (test / test123).
{{unixTimestamp}} / {{hmacSignature}}Waktu Unix saat ini dalam detik, dan HMAC-SHA256 heksadesimal dari "{timestamp}.{raw body}" dengan kunci apibee-hmac-secret.
{{uuid}}UUID baru apa saja, dipakai sebagai Idempotency-Key.

Masuk untuk melihat detailnya

Parameter, contoh request dan response, serta panel Try it langsung untuk endpoint autentikasi khusus anggota yang sudah masuk. Akun gratis dan dibuat dalam beberapa detik.

Penundaan dan error simulasi

Dua parameter query berlaku di setiap endpoint:

ParameterEfekContoh
delayMenunggu N detik sebelum merespons. Maksimal 10./api/Products?delay=2
errorMengembalikan error simulasi alih-alih response sungguhan: 400, 401, 403, 404, 408, 429, 500, 502 atau 503. Menambahkan header X-Simulated: true./api/Products?error=503

Jika digabung, seperti ?delay=2&error=503, request menunggu lalu gagal. Error simulasi terlihat seperti ini:

Error simulasi
{
  "status": 503,
  "error": "Service Unavailable",
  "message": "Simulated error. Use ?error={code} to test different status codes.",
  "simulated": true
}

Filter, pengurutan, dan paginasi

Setiap endpoint daftar resource, seperti GET /api/Products, menerima parameter query berikut:

ParameterArtiContoh
limitUkuran halaman, 1 sampai 100. Tanpa parameter ini, semua data dikembalikan.?limit=10
pageNomor halaman mulai dari 1. Butuh limit.?limit=10&page=2
offsetMelewati N data, sebagai pengganti page.?limit=10&offset=20
sort, orderUrutkan berdasarkan field apa pun. order bernilai asc (default) atau desc.?sort=price&order=desc
qPencarian tanpa membedakan huruf besar-kecil di field title, name, body, description, dan text.?q=keyboard
field apa punFilter persis, tanpa membedakan huruf besar-kecil, pada properti itu.?category=books&inStock=true

Daftar mengembalikan array JSON biasa. Totalnya ada di header X-Total-Count, X-Page, X-Per-Page, dan X-Total-Pages. Paginasi cursor, header Link, keyset, dan HAL ditunjukkan di Paginasi.

Response dan error

SituasiStatusBody
Mengambil satu data200Data tersebut
Mendaftar data200Array data, ditambah header paginasi
Membuat201{ message, data }
Membuat sekaligus201{ message, data: [ … ] }
Mengganti atau mengubah200{ message, data }
Perubahan sebagian (PATCH)200{ message, changed, ignored, data }
Menghapus200{ message }
Menghapus sekaligus200{ message, deleted, notFound }
Error4xx atau 5xx{ status, error, message }
Error validasi model400application/problem+json dengan error per field
Validasi bisnis422application/problem+json (RFC 7807) dengan error per field
Error
{
  "status": 404,
  "error": "Not Found",
  "message": "Book with ID 999 does not exist."
}

Setiap response mengizinkan origin apa pun (Access-Control-Allow-Origin: *, tanpa kredensial) dan membuka header paginasi, caching, rate limit, dan versioning untuk kode browser. Header X-RateLimit-* hanya informasi; pembatasan sungguhan hanya terjadi di Rate limit.

Semua data ada di memori. Membuat, mengubah, dan menghapus berfungsi, tetapi semuanya kembali ke data awal saat server dimulai ulang.

Memanggil dari browser

  • Cookie. Browser tidak mengizinkan JavaScript memasang header Cookie, dan request lintas origin tidak membawa kredensial. Endpoint berbasis cookie hanya berfungsi dari origin yang sama atau lewat proxy.
  • Redirect. fetch() mengikuti redirect dan menyembunyikan response 3xx. Untuk melihat status asli dan header Location, pakai proxy.
  • Proxy. POST /api/Proxy/call meneruskan request dari server dan mengembalikan status serta body-nya. Cara ini menghindari batasan CORS, cookie, dan redirect, tetapi tidak meneruskan header response.
  • Stream. /api/stream/sse adalah Server-Sent Events. Stream NDJSON, chunked, drip, dan array JSON tiba sedikit demi sedikit; baca dengan pembaca streaming.
  • WebSocket. /ws/echo dan /ws/ticker butuh WebSocket API, bukan fetch.
  • Autentikasi Digest. Browser hanya menjalankan challenge dan response lewat dialog login bawaannya.
  • Injeksi kegagalan. /api/chaos/abort dan /api/chaos/partial memutus koneksi dengan sengaja. /api/chaos/timeout dan /api/chaos/slow bisa memakan waktu hingga 60 detik.
  • Header terlarang. Browser menolak memasang Host, Content-Length, Accept-Encoding, Cookie, dan beberapa lainnya.

Masuk untuk melihat detailnya

Parameter, contoh request dan response, serta panel Try it langsung untuk catatan ini khusus anggota yang sudah masuk. Akun gratis dan dibuat dalam beberapa detik.

Endpoint

360 endpoint dalam 53 grup. Setiap grup membuka referensinya, lengkap dengan parameter serta contoh request dan response.

Mulai di sini

4 endpoint

Katalog langsung semua endpoint, ditambah health check.