Overview
The NFTOKEN API provides a fast, reliable interface for cookie-based authentication and session extraction services. Built for developers who need programmatic access to cookie processing at scale.
https://nfapi-webapp.up.railway.appAll endpoints below are relative to this base URL. Use HTTPS for all requests.
Key Features
- RESTful JSON API with predictable resource URLs
- Key-based authentication with per-request metering
- Batch processing for up to 10 cookies per request
- Real-time playground for testing endpoints
- Detailed error codes and response metadata
Authentication & Pricing
Access the API by including your API key in the request body. Keys are issued per plan and metered by total requests.
Pricing Plans
- Full API access
- Standard rate limits
- Email support
- Full API access
- Higher rate limits
- Priority support
- Save ~20% vs monthly
- Pay-per-request
- No subscription
- 21 req minimum
- $2 per 100 requests
| Plan | Billing | Key Format |
|---|---|---|
| Monthly | Recurring | NF-xxxxx |
| Semi-Annual | Recurring (6mo) | NF-xxxxx |
| Personal | Prepaid credits | NF-xxxxx |
Terms & Disclaimer
Legal Terms & Conditions
▼By using the NFTOKEN API, you agree to the following terms:
- API keys are non-transferable and must not be shared publicly.
- Rate limits must be respected. Abuse will result in key revocation.
- All processed data is handled in compliance with applicable data protection laws.
- The service is provided "as is" without warranties of any kind.
- We reserve the right to modify pricing and terms with prior notice.
- Users are responsible for the cookies they submit for processing.
- Refunds are handled on a case-by-case basis within 7 days of purchase.
POST /v1/api
Process a single cookie string OR a batch of cookie strings and extract session/authentication data. This is the unified endpoint — batch and single are both handled here.
cookies as an array (max 10) instead of cookie as a string. The response shape changes to {success, total, succeeded, failed, results:[...]} in batch mode.| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Your API key (NF-xxxxx) |
cookie | string | Yes* | Single cookie string to process (*use cookies for batch) |
cookies | string[] | Yes* | Array of cookie strings for batch mode (max 10) |
Single Request Example
{
"key": "NF-xxxxx",
"cookie": "NetflixId=abc123; SecureNetflixId=def456"
}{
"success": true,
"data": {
"Name": "John Doe",
"Email": "user@example.com",
"Plan": "Premium",
"token": "T-xxxxxxxx",
...
},
"requests_remaining": 450
}Batch Request Example
{
"key": "NF-xxxxx",
"cookies": [
"NetflixId=abc123; SecureNetflixId=def456",
"NetflixId=xyz789; SecureNetflixId=uvw012"
]
}{
"success": true,
"total": 2,
"succeeded": 2,
"failed": 0,
"results": [
{ "index": 0, "success": true, "data": { ... } },
{ "index": 1, "success": true, "data": { ... } }
],
"requests_remaining": 448
}import requests url = "https://nfapi-webapp.up.railway.app/v1/api" payload = { "key": "NF-xxxxx", "cookie": "NetflixId=abc123; SecureNetflixId=def456" } response = requests.post(url, json=payload) print(response.json())
import requests url = "https://nfapi-webapp.up.railway.app/v1/api" payload = { "key": "NF-xxxxx", "cookies": [ "NetflixId=abc123; SecureNetflixId=def456", "NetflixId=xyz789; SecureNetflixId=uvw012" ] } response = requests.post(url, json=payload) print(response.json())
const response = await fetch('https://nfapi-webapp.up.railway.app/v1/api', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'NF-xxxxx', cookies: [ 'NetflixId=abc; SecureNetflixId=def', 'NetflixId=ghi; SecureNetflixId=jkl' ] }) }); const data = await response.json(); console.log(data);
curl -X POST https://nfapi-webapp.up.railway.app/v1/api \ -H "Content-Type: application/json" \ -d '{ "key": "NF-xxxxx", "cookies": [ "NetflixId=abc; SecureNetflixId=def", "NetflixId=ghi; SecureNetflixId=jkl" ] }'
POST /v1/playground
Free testing endpoint (2 requests/day per IP) with CAPTCHA verification. Returns full account data. An optional API key bypasses the rate limit and CAPTCHA.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | No | Optional API key (bypasses CAPTCHA + limit) |
cookie | string | Yes | Cookie string to test |
pg_token | string | Yes* | Page token from GET /v1/pg-token (*required when no key) |
captcha_answer | string | Yes* | User's answer to the CAPTCHA question |
captcha_sig | string | Yes* | Signed answer from GET /v1/pg-token |
captcha_expected | string | Yes* | Expected answer from GET /v1/pg-token |
POST /v1/key-check
Validate an API key and retrieve its current status, plan, and remaining request quota.
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | Yes | API key to validate |
{
"valid": true,
"plan": "monthly",
"requests_remaining": 450,
"requests_total": 1000,
"expires_at": "2025-02-01T00:00:00Z"
} GET /v1/status
Public health check endpoint. Returns system status, uptime, and version information. No authentication required.
{
"status": "operational",
"version": "2.0.0",
"uptime": 86400,
"latency_ms": 42
} GET /v1/pricing
Public endpoint to retrieve current pricing information. Useful for building pricing displays or comparison tools. No authentication required.
{
"monthly_usd": 4.99},
"monthly_inr": 469},
"semi_usd": 24.99},
"semi_inr": 2369},
"personal_per_100_usd": 2},
"personal_per_100_inr": 190},
"personal_min_requests": 21}
}Response Format
All API responses follow a consistent JSON structure:
{
"success": true, // Boolean - whether the request succeeded
"data": { ... }, // Object - response payload
"message": "OK", // String - human-readable status
"requests_remaining": 450 // Number - remaining quota
}200 for success, 401 for invalid key, 429 for rate limit, 400 for bad request, 500 for server error.Error Codes
| Code | HTTP | Description |
|---|---|---|
INVALID_KEY | 401 | The provided API key is invalid or expired |
MISSING_KEY | 401 | No API key was provided in the request |
RATE_LIMITED | 429 | Request limit exceeded — retry after cooldown |
MISSING_COOKIES | 400 | No cookie data was provided |
INVALID_FORMAT | 400 | Cookie data could not be parsed |
BATCH_TOO_LARGE | 400 | Batch request exceeds 10 cookies (POST /v1/api with cookies array) |
PROCESSING_ERROR | 500 | Internal error during cookie processing |
SERVICE_UNAVAILABLE | 503 | API is temporarily unavailable |
Code Examples
Python
import requests API_BASE = "https://nfapi-webapp.up.railway.app" API_KEY = "NF-xxxxx" # Single request response = requests.post(f"{API_BASE}/v1/api", json={ "key": API_KEY, "cookie": "NetflixId=abc123; SecureNetflixId=def456" }) print(response.json()) # Batch request (same endpoint, cookies is a list) batch_resp = requests.post(f"{API_BASE}/v1/api", json={ "key": API_KEY, "cookies": [ "NetflixId=abc; SecureNetflixId=def", "NetflixId=ghi; SecureNetflixId=jkl" ] }) print(batch_resp.json()) # Check key status status = requests.post(f"{API_BASE}/v1/key-check", json={ "key": API_KEY }) print(status.json())
JavaScript (Node.js / Browser)
const API_BASE = 'https://nfapi-webapp.up.railway.app'; const API_KEY = 'NF-xxxxx'; // Single request const res = await fetch(`${API_BASE}/v1/api`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: API_KEY, cookie: 'NetflixId=abc123; SecureNetflixId=def456' }) }); const data = await res.json(); console.log(data); // Batch request (same endpoint, cookies is an array) const batchRes = await fetch(`${API_BASE}/v1/api`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: API_KEY, cookies: [ 'NetflixId=abc; SecureNetflixId=def', 'NetflixId=ghi; SecureNetflixId=jkl' ] }) }); console.log(await batchRes.json());
cURL
# Single request curl -X POST https://nfapi-webapp.up.railway.app/v1/api \ -H "Content-Type: application/json" \ -d '{"key": "NF-xxxxx", "cookie": "NetflixId=abc123; SecureNetflixId=def456"}' # Batch request (same endpoint, cookies is an array) curl -X POST https://nfapi-webapp.up.railway.app/v1/api \ -H "Content-Type: application/json" \ -d '{"key": "NF-xxxxx", "cookies": ["NetflixId=abc", "NetflixId=def"]}' # Check key curl -X POST https://nfapi-webapp.up.railway.app/v1/key-check \ -H "Content-Type: application/json" \ -d '{"key": "NF-xxxxx"}' # System status (no auth) curl https://nfapi-webapp.up.railway.app/v1/status # Get pricing (no auth) curl https://nfapi-webapp.up.railway.app/v1/pricing