📖 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.

ℹ️
Base URL: https://nfapi-webapp.up.railway.app
All 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.

⚠️
Never expose your API key in client-side code. Keep it server-side and use environment variables.

Pricing Plans

Monthly
$4.99
or ₹469 / month
  • Full API access
  • Standard rate limits
  • Email support
Personal
From $0.42
or from ₹40
  • Pay-per-request
  • No subscription
  • 21 req minimum
  • $2 per 100 requests
PlanBillingKey Format
MonthlyRecurringNF-xxxxx
Semi-AnnualRecurring (6mo)NF-xxxxx
PersonalPrepaid creditsNF-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.
⚠️
Any unauthorized use, reverse engineering, or attempt to circumvent security measures is strictly prohibited and may result in legal action.

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.

💡
Batch mode: send 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.
POST /v1/api
ParameterTypeRequiredDescription
keystringYesYour API key (NF-xxxxx)
cookiestringYes*Single cookie string to process (*use cookies for batch)
cookiesstring[]Yes*Array of cookie strings for batch mode (max 10)

Single Request Example

Request
{
  "key": "NF-xxxxx",
  "cookie": "NetflixId=abc123; SecureNetflixId=def456"
}
Single Response
{
  "success": true,
  "data": {
    "Name": "John Doe",
    "Email": "user@example.com",
    "Plan": "Premium",
    "token": "T-xxxxxxxx",
    ...
  },
  "requests_remaining": 450
}

Batch Request Example

Batch Request
{
  "key": "NF-xxxxx",
  "cookies": [
    "NetflixId=abc123; SecureNetflixId=def456",
    "NetflixId=xyz789; SecureNetflixId=uvw012"
  ]
}
Batch Response
{
  "success": true,
  "total": 2,
  "succeeded": 2,
  "failed": 0,
  "results": [
    { "index": 0, "success": true, "data": { ... } },
    { "index": 1, "success": true, "data": { ... } }
  ],
  "requests_remaining": 448
}
Python — Single
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())
Python — Batch
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())
JavaScript — Batch
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 — Batch
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.

POST /v1/playground
ParameterTypeRequiredDescription
keystringNoOptional API key (bypasses CAPTCHA + limit)
cookiestringYesCookie string to test
pg_tokenstringYes*Page token from GET /v1/pg-token (*required when no key)
captcha_answerstringYes*User's answer to the CAPTCHA question
captcha_sigstringYes*Signed answer from GET /v1/pg-token
captcha_expectedstringYes*Expected answer from GET /v1/pg-token
💡
Use the interactive Playground page for a GUI-based testing experience.

🔐 POST /v1/key-check

Validate an API key and retrieve its current status, plan, and remaining request quota.

POST /v1/key-check
ParameterTypeRequiredDescription
keystringYesAPI key to validate
Response
{
  "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.

GET /v1/status
Response
{
  "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.

GET /v1/pricing
Response
{
  "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:

Standard Response
{
  "success": true,           // Boolean - whether the request succeeded
  "data": { ... },           // Object  - response payload
  "message": "OK",        // String  - human-readable status
  "requests_remaining": 450  // Number  - remaining quota
}
ℹ️
HTTP status codes: 200 for success, 401 for invalid key, 429 for rate limit, 400 for bad request, 500 for server error.

🚨 Error Codes

CodeHTTPDescription
INVALID_KEY401The provided API key is invalid or expired
MISSING_KEY401No API key was provided in the request
RATE_LIMITED429Request limit exceeded — retry after cooldown
MISSING_COOKIES400No cookie data was provided
INVALID_FORMAT400Cookie data could not be parsed
BATCH_TOO_LARGE400Batch request exceeds 10 cookies (POST /v1/api with cookies array)
PROCESSING_ERROR500Internal error during cookie processing
SERVICE_UNAVAILABLE503API is temporarily unavailable

💻 Code Examples

Python

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)

JavaScript
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

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
Get API Key
Choose a contact on Telegram to get your API key.