This page covers the platform's core product — JSON Pipeline — along with account, billing, and privacy questions that apply across FlyingFish Space. Click any question below to expand the answer. For deeper technical reference, see the API documentation or the knowledge base.
Product & Positioning
Q1What is FlyingFish Space?
FlyingFish Space is a lightweight, login-free collection of developer tools built around the idea
"Simple tools. Less friction." The most complete product today is
JSON Pipeline (json.flyingfishspace.com), which focuses on
safely repairing, validating, and transforming JSON data used in production systems.
The platform's Terms of Service also describe additional planned or in-progress clusters, such as an Intelligent Logic Cluster (AI-assisted marketing strategy tools) and a DevHUD & Geo Cluster (IP lookup, MMDB tools). Which tools are actually live at any given time is best confirmed on the homepage or in the API docs, since new modules are added incrementally.
Q2How is JSON Pipeline different from other online JSON tools?
Most online JSON tools only check whether the syntax is valid. When they encounter very large
integers, high-precision decimals, keys that contain a literal dot, or schemas with
$ref references, they can silently corrupt the data — for
example, quietly turning a 64-bit snowflake ID into an imprecise floating-point number.
JSON Pipeline is built "Integrity-First," with four layers of protection:
| Mechanism | What it does |
|---|---|
| Precision Guard | Detects and blocks numeric literals that would lose precision |
| Structural Fidelity | Preserves the exact identity of every key, including keys containing dots |
| Schema-Aware | Resolves Draft 7 $ref references, including cycle detection |
| Value-Locked | AI repair cannot silently alter existing valid values or invent missing ones |
When a request can't be handled safely, the API returns a clear rejection (HTTP 422, typically uncharged) instead of a plausible-looking but corrupted result.
Q3Why won't it "fix" oversized integers or high-precision decimals?
Because JavaScript's Number type (IEEE 754 double precision) has two hard ceilings:
- Integers are only exact up to
Number.MAX_SAFE_INTEGER(9007199254740991, 16 digits) - Decimals are only reliably exact to about 15 significant digits
Past those limits, JSON.parse silently rounds or truncates the value — with no
error and no warning. JSON Pipeline intercepts this before parsing and tells you exactly
which literal is unsafe, so you can decide whether to encode it as a string instead of
letting the tool quietly "fix" it into a different number.
Identity: Account ID, Recovery Code, API Key
Q4Why no email or password?
The platform deliberately avoids email/password accounts to lower the barrier to entry and minimize collection of personal data. Your identity is instead a randomly generated Account ID (UUID) paired with a Recovery Code — neither contains any personal information.
Q5What is the Account ID (UUID)?
Your Account ID is a unique identifier (standard UUID format) issued when you create an identity. After creation, the platform sets a signed, HttpOnly cookie to keep you signed in — every subsequent identity-aware request (checking balance, issuing a key, etc.) reads this cookie automatically, with no manual parameters needed.
- Your credit balance is tied to the Account ID, not to any single API Key
- It is safe to share your Account ID with support — on its own it cannot be used to log in or move funds
Q6What is the Recovery Code, and what is it used for?
The Recovery Code is a random string generated when your Account ID is created (or whenever you regenerate one). It is the only way to recover or switch identities.
- Shown in full exactly once — afterward, only its hash is stored, so nobody, including support, can retrieve the plaintext again
- Required (together with your Account ID) whenever you switch devices, clear cookies, or need to re-authenticate
- Never share it with anyone. Anyone holding your Account ID + Recovery Code has full control of the account
Q7What is an API Key, and how does it relate to the Account ID?
An API Key (formatted like ffs_live_xxxxxxxx) is issued per tool
module and used for programmatic calls via the X-API-Key header.
- Each Account ID can have only one active Key per tool module at a time
- A Key is scoped to the tool it was issued for — a JSON Pipeline key will not authenticate against a different module
- Credit balance is shared at the Account level, regardless of how many tools or keys you use
- A Key is shown in full only once, right after it is generated or reissued — afterward the UI shows a masked value (e.g.
ffs_live_••••••••••••) - You can revoke and reissue a Key at any time; the old Key stops working immediately and your balance carries over to the new one
Q8I lost both my Account ID and Recovery Code — can I recover the account?
If your browser session (cookie) is still active, you can generate a new Recovery Code from the Billing page.
If the cookie has also expired and both the Account ID and Recovery Code are lost, there is no official way to recover the account. This is an inherent trade-off of the no-email model — please store both values somewhere safe (a password manager is recommended) as soon as they're generated.
Q9How do I keep using the platform on a new device or browser?
On the Billing page, use "Switch / Recover Identity" and enter your saved Account ID + Recovery Code. Once verified, the platform issues a new sign-in cookie on that device.
Credits & Billing
Q10How much free credit do I get, and how?
The first time you generate an API Key for a tool, the platform grants 100 free credits — no email or personal information required.
Free credits are subject to anti-abuse limits and may not be granted in every case.
Q11How are credits consumed? Do they expire?
- You are generally charged only on a successful request. Requests that produce no real output (failed validation, precision rejections, insufficient balance) are not charged
- A few tools (notably AI Repair) may charge a small flat fee even on rejection if real AI compute was already consumed — see Q20
- Credits never expire, and they are preserved through platform maintenance windows
- Your balance is tied to your Account ID, not to a specific API Key — revoking and reissuing a Key does not affect it
Q12How much does each tool cost?
| Tool | Cost | Notes |
|---|---|---|
| JSON Clean | 1 credit | Charged only on a successful repair |
| Schema validation | 2 credits | Charged whenever validation runs successfully, regardless of whether the data turns out valid or invalid |
| Transform | 3 credits | Flatten / unflatten / rename keys / JSON↔CSV |
| AI Repair (ai-clean) | 1 or 10 credits | Tiered — see Q20 |
Q13How are Workflows (multi-step combos) billed?
A Workflow chains several tools into one call, billed per step that actually completes successfully — steps skipped after an early failure are not charged.
| Workflow | Steps | Max cost |
|---|---|---|
clean-validate | clean → schema | 3 credits |
ai-validate | ai-clean → schema | 3–12 credits (depends on whether AI is actually invoked) |
clean-reshape | clean → transform | 4 credits |
full-pipeline | clean → schema → transform | 6 credits |
Even if a workflow halts partway (for example, a schema-validation failure), steps that already completed successfully are still billed; steps that never ran are not.
Payments & Refunds
Q14How do I top up, and what plans are available?
Once you have an Account ID and an API Key, you can choose a top-up plan on the Billing page:
| Plan | Price | Credits | Notes |
|---|---|---|---|
| SOS Pack | $1.99 | 1,000 | No bonus |
| Standard | $9.99 | 15,000 | +50% bonus |
| Production | $49.00 | 150,000 | +200% bonus |
Q15What payment methods are supported?
Payments are processed via PayPal. The payment options available to you are always shown at checkout on the Billing page.
Q16Is this a subscription?
No. There is no subscription — you pre-purchase credits once, and they never expire. Use them at your own pace across any tool on the platform.
Q17Can I get a refund?
A refund may be approved if either condition is met (full details in the Terms of Service, Section 6):
- Standard window: requested within 14 days of purchase, less than 5% of the purchased quota consumed, and fewer than 3 valid operations completed
- Systemic failure: a verified technical incident caused credit deductions without corresponding service delivery, confirmed via internal log data
Refunds are not granted for: functional misuse outside a tool's documented scope (e.g. submitting a PDF/image/XML and expecting JSON conversion), consumption beyond the 5%/3-call threshold, or confirmed security violations.
Please contact support@flyingfishspace.com or use in-app support first, before escalating to your payment provider.
Using the Tools
Q18What's the difference between the browser tools and the API?
| API Key needed? | Where data is processed | Best for | |
|---|---|---|---|
| Browser pages (Clean / Schema / Transform) | No | Entirely in your browser — nothing sent to a server | One-off fixes, manual debugging |
| API calls | Yes (X-API-Key) | Server-side (Cloudflare Worker) | Automation, scripts, production integration |
| AI Repair (browser or API) | Yes | Sent to a third-party hosted AI model | Severely malformed input the rule engine can't fix |
Q19What kinds of problems can JSON Clean fix?
- Trailing commas
- Single-quoted strings / unquoted object keys
- JavaScript-style comments (
//and/* */) - Illegal escape sequences
- Smart quotes, em/en dashes, non-breaking spaces, BOM
NaN/Infinity(JS-only literals)- JSON wrapped in a markdown code fence
- Truncated JSON (auto-completes missing brackets)
These are all syntax-level repairs, and any input that could cause numeric precision loss (see Q3) is rejected rather than guessed at — Clean never invents or silently alters valid data.
Q20When should I use AI Repair, and how is it billed?
Use AI Repair when JSON Clean can't recover the structure — severe corruption, missing
semantic context, or when you need values semantically remapped against a target schema
(e.g. "ok" → an allowed enum value like "active").
@cf/openai/gpt-oss-20b) — it is the only tool on the platform that is not
fully local/private by design. Content is not retained after processing.
- Input is capped at 3,072 bytes (much smaller than the 1MB limit on other tools) — oversized input is rejected before any AI call, so it's never charged
- If the free rule-based engine alone succeeds and already satisfies any supplied schema, you're charged 1 credit
- If the AI model actually has to run, you're charged the full 10 credits
- If the AI ran but its output was rejected by a guardrail (changed a protected value, or failed schema validation), you're charged a flat 1 credit — enough to cover the real compute cost without letting anyone farm free AI calls by intentionally tripping the guardrail
Two guardrails apply on every AI repair: Value-Lock (the AI may only fix structure/keys — it cannot silently change an existing valid value or invent a value for a field that was genuinely missing) and, if a schema is supplied, mandatory re-validation against it.
Q21What do Schema validation and Transform actually do?
Schema: validates data against a JSON Schema (Draft 7) and returns a structured error report (path, keyword, message), with support for $ref resolution.
Transform: five data-reshaping operations — flatten, unflatten, renameKeys, jsonToCsv, and csvToJson — all governed by the same numeric-precision protections as Clean.
Q22What is a Workflow?
A Workflow chains multiple tools together (e.g. "repair syntax, then validate against a
schema") behind a single API call, avoiding extra round-trips. Available combos and pricing
are listed in Q13; the live list — including maintenance status — can always be fetched from
GET /api/v1/modules.
Q23What's the maximum request size?
- Clean / Schema / Transform (browser and API): 1 MB per request
- AI Repair (ai-clean) — an exception, due to real-world stability limits on the AI model: 3,072 bytes per request. Split larger documents into smaller batches
Account Security
Q24My API Key was leaked — what should I do?
Go to the Billing page and click "Revoke & Reissue Key" immediately. The old Key stops working instantly, and your balance carries over to the new one.
Privacy & Data Handling
Q25Is my JSON data stored or logged?
- Browser tools (Clean, Schema, Transform pages) run entirely on your device — nothing is sent to a server
- API calls are processed server-side, but submitted content is not stored or logged
- AI Repair content is sent to a third-party hosted AI model and is not retained after processing
- Some tools log that an internal data-quality check was triggered (e.g. a precision warning), but never the actual value — this is used only to calibrate the safeguards over time
- Non-content metadata related to AI Repair calls (token counts, processing duration) is retained for internal cost analysis and billing accuracy — it never includes your submitted content
Q26Is the platform compliant with privacy regulations?
The platform does not intentionally collect names, emails, or phone numbers — only hashed fingerprints for abuse prevention. Details on each third-party service (Cloudflare Turnstile for security, GA4 and Microsoft Clarity for analytics, Tawk.to for live chat) and how to opt out of each are in the full Privacy Policy.
Q27Does AI Repair use my data to train models?
The platform does not intentionally store or use submitted content for model training, and content is not retained after processing. This is governed ultimately by our Privacy Policy and the AI provider's (Cloudflare Workers AI) own terms.
API & Integration
Q28How do I get an API Key?
- Go to
/billing - Generate a new Account ID, or sign in with an existing Account ID + Recovery Code
- Generate an API Key for the tool module you need
- Include it as
X-API-Key: your_keyin your requests
Q29What's the authentication method? Is there OAuth?
Programmatic calls use only the X-API-Key header. No login flow, no OAuth, no cookies required.
Q30How do I check my remaining balance and Key status?
Call GET /api/v1/status with your X-API-Key header. It returns
balance, status (active / revoked),
platform_uuid, and module_id. This endpoint never charges
credits — checking your balance is always free.
Q31Is there full API documentation and code samples?
Yes — visit /docs for the base URL, authentication, every tool and Workflow endpoint, request/response examples, and code samples in Node.js, Python, and Go.
Q32Are there rate limits?
Yes, processing endpoints are rate-limited per IP. A few examples:
| Endpoint | Limit |
|---|---|
clean, transform | 60 requests / 60s per IP |
schema | 40 requests / 60s per IP |
ai-clean | 5 requests / 60s per IP (tighter, due to real AI compute cost) |
| Workflows | 30–40 requests / 60s per IP (ai-validate matches ai-clean at 5/60s) |
The complete table is in the API docs under "Rate Limits."
Reliability & Support
Q33How reliable is the service? Is there an SLA?
The entire platform runs on Cloudflare's global edge network. There is no formally published SLA at this time — if you plan to use it in production, we recommend validating with low traffic first.
Q34How do I report an issue or get help?
Use the "Contact Us" link in the site footer — email support@flyingfishspace.com, or open live chat after completing the Cloudflare Turnstile check. You can also browse the knowledge base first.
Q35What's in the knowledge base (Guides)?
In-depth articles covering topics like why JSON numbers silently lose precision, common JSON errors in LLM output and how to fix them, and privacy practices for online developer tools. New users are encouraged to skim a few articles to quickly understand the platform's design philosophy — especially the core principle of rejecting rather than silently corrupting data.
Q36Do other tool modules also require an API Key?
Most user-facing tools can be used directly in the browser with no account at all. For
programmatic or automated access to a specific module, check that module's own page or
/docs to confirm whether an API is offered and how it's billed — Keys are
module-scoped and are never interchangeable between tools (see Q7).