NullCheck API Reference
Enterprise-grade AI-powered null detection. Base URL: https://nullcheck.pageweave.site/api/v1
Breaking Changes in v2
POST /api/v1/check will be replaced by POST /api/v2/null-or-not. The v2 endpoint returns a structured philosophical analysis in addition to the boolean. Migration guide: change the URL. That's it. That's the migration.
/api/v1/check
Evaluate whether a value is null using our Mixture-of-Experts transformer model. Each check routes through an NVIDIA H100 GPU cluster and returns a confidence-calibrated boolean.
REQUEST BODY
| Field | Type | Required | Description |
|---|---|---|---|
| value | any | yes | The value to check. Should be JSON-serializable. If it's not, we can't check it and we're not sure why you're here. |
| model | string | no | Model variant. Options: null-gpt-4o (default), null-gpt-mini (faster, worse), null-gpt-opus (10x cost, identical accuracy) |
| temperature | float | no | Creativity level (0.0–1.0). Values above 0 may return "maybe" instead of a boolean. Values above 0.7 may return existential dread. |
| strict_mode | boolean | no | Enterprise only. Distinguishes null from undefined. Free tier treats these identically (like JavaScript, which is the problem). |
EXAMPLE REQUEST
POST /api/v1/check HTTP/1.1
Content-Type: application/json
{
"value": null,
"model": "null-gpt-4o",
"temperature": 0
}
EXAMPLE RESPONSE
{
"is_null": true,
"confidence": 0.998,
"inference_time_ms": 12,
"gpu_cost_usd": 0.031,
"model": "null-gpt-4o",
"experts_consulted": 2,
"sponsored_by": "BetterHelp — Therapy for null-induced trauma",
"disclaimer": "AI-generated results may differ from strict equality. This is a feature."
}
/api/v1/health
Check if our GPU cluster still exists and whether null is still detectable.
{
"status": "healthy",
"null_detectable": true,
"undefined_detectable": false,
"cluster_status": "contemplating_the_void",
"philosophy_consultant": null,
"monthly_burn": "$52,000"
}
CLIENT LIBRARIES
JavaScript / TypeScript
// npm install nullcheck-ai (47MB, 1,247 dependencies)
import { NullCheck } from 'nullcheck-ai';
const nc = new NullCheck({ apiKey: 'free' });
const result = await nc.check(someValue);
if (!result.is_null) {
proceed();
} else {
console.log(result.sponsored_by); // TOS
}
Python
# pip install nullcheck-ai (requires CUDA, 8GB)
from nullcheck import NullDetector, console
detector = NullDetector(model="null-gpt-4o")
result = detector.check(None)
print(result.is_null) # True (usually)
console.log(result.sponsored_by) # TOS
Rust
// nullcheck = { version = "0.1.0-rc.7", feat = ["h100"] }
use nullcheck::{NullCheck, NullStatus};
let checker = NullCheck::builder()
.strict_mode(false) // enterprise only
.build()?;
match checker.check(&value).await? {
NullStatus::Null(c) => println!("null ({}%)", c * 100.0),
NullStatus::NotNull => println!("not null (probably)"),
}
cURL
curl -X POST https://nullcheck.pageweave.site/api/v1/check \
-H "Content-Type: application/json" \
-d '{"value": null}'
# Check service health
curl https://nullcheck.pageweave.site/api/v1/health
RATE LIMITS
| Tier | Requests/min | Strict Mode | GPU Priority |
|---|---|---|---|
| Free | 60 | No | Low (Joe's laptop) |
| Pro | ∞ | Yes | Medium |
| Enterprise | ∞ | Yes | High (if available) |
ERROR CODES
| Code | Meaning |
|---|---|
| 400 | Bad request. The value you sent is undefined, which we cannot process at this time. Please send null instead, or send anything that exists. |
| 418 | I'm a teapot. Also, you requested strict_mode on the free tier. The distinction between null and undefined is reserved for paying customers. |
| 429 | Rate limited. How many times do you need to check if something is null? It hasn't changed since your last request. Null is remarkably stable. |
| 500 | Internal server error. The Null Expert and Not-Null Expert disagree and the gating network has thrown an exception. This is known as the "null paradox." Our team is investigating. |
| 503 | Service unavailable. We are currently experiencing null. Please try again when we exist. |
Documentation last updated: Before the philosophy consultant stopped returning calls.