{"schema_version":"1.2","catalog_version":"9.39","updated_at":"2026-10-08","canonical_source":"https://www.promptbox.cn/api/docs.html","generated_from":"https://www.promptbox.cn/api/docs.html","purpose":"Compact helper discovery index. Select a helper here, then fetch its catalog_url for the complete callable specification.","selection_defaults":{"text_llm":{"helper":"llm.php","rule":"Preferred for ordinary text LLM requests."},"text_to_image":{"helper":"image_gen.php","rule":"Preferred for ordinary text-to-image generation."},"specialized_helpers_rule":"Choose another helper only when its documented capability, such as multimodal input, image editing, RAG, neural simulation, or OpenAI-compatible chat, is required."},"browser_access_policy":{"publish_first_required":true,"rule":"Browser calls to helpers normally require HTTPS promptbox.cn or a subdomain. Publish the app first, then test at its returned Promptbox URL.","server_to_server":"Originless server-to-server and CLI calls remain supported.","exceptions":[{"helper":"publish.php","rule":"Unrestricted browser origin so external agents can publish."},{"helper":"doomfly.php","rule":"Unrestricted browser origin with automatic service credentials; shared computation and rate limits still apply."},{"helper":"llm_jb.php","rule":"Its documented OpenAI-compatible /v1/models and /v1/chat/completions suffixes are the only intentional route-suffix exception; do not append paths to other helper URLs."}]},"error_policy":{"caller_errors":[400,401,403,404,405,409,413,415,422],"rate_limit":429,"storage_full":507,"infrastructure_errors":[500,503,504],"ambiguous":[502]},"helpers":[{"id":"browser","name":"browser.php","description":{"what":"Controls a JavaScript-enabled browser: open pages, read content, fill forms, click links, manage tabs, take screenshots, and reuse saved login profiles. Use mode=agent for guided actions with current control IDs. Requires a browser API key. Uses two CPU cores and a 110-thread ceiling within a 120-thread hosting allowance, reserving ten threads for other hosting work. Supports up to two concurrent sessions and four tabs per session when resources permit; idle sessions expire after about three minutes and operations have a 45-second deadline. File uploads/downloads and interactive human takeover are unavailable.","how":"POST JSON with Authorization: Bearer YOUR_BROWSER_API_KEY. Set mode=agent, open a URL, and use the latest page_id and control IDs for each action. Give state-changing actions a unique request_id, inspect the returned page, and close the session when finished. If content is loading or controls are truncated, request one snapshot, using focus when needed. Human-verification pages require human help; inspect uncertain results before retrying."},"endpoints":[{"url":"https://promptbox.cn/api/browser.php","methods":["POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/browser.json"},{"id":"convert_video_mp4","name":"convert_video_mp4.php","description":{"what":"Converts an uploaded browser-recorded or other FFmpeg-readable video into an iPhone-compatible MP4 with H.264 video and AAC audio. It accepts uploads up to 600 MB, returns raw video/mp4 bytes, and has no Promptbox request quota.","how":"Send a multipart POST request with the source file in the video field. On success, save or play the returned video/mp4 bytes."},"endpoints":[{"url":"https://www.promptbox.cn/api/convert_video_mp4.php","methods":["POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/convert_video_mp4.json"},{"id":"decision","name":"decision.php","description":{"what":"Returns a yes/no decision, one choice from supplied options, or a score on an ordered scale, based on your context and question. The JSON result contains only answer and probability. Choose this helper when you need a typed decision rather than a prose answer. It has no Promptbox request quota.","how":"POST JSON with context, question, output_type, and any required options. Use noul for yes/no, choice for 2–255 options, or score for 2–255 ordered levels. Prefer 2–10 levels for native scoring; 11–255 levels return an approximate score calculated from choice probabilities. Scores are zero-based and may be fractional."},"endpoints":[{"url":"https://www.promptbox.cn/api/decision.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/decision.json"},{"id":"doomfly","name":"doomfly.php","description":{"what":"Simulates activity in a male fruit-fly neural network from images, retinal brightness, or direct neuron currents. Returns spike totals, population activity, selected neurons, firing rates, voltages, and optional control readouts. Sessions preserve neural state across successive inputs. Use this helper to explore neural activity; its fixed weights do not learn or establish natural fly behavior.","how":"Set the desired route in the path query parameter. Start with a JSON POST to /v1/step; create a session only when successive inputs must share state, and DELETE it when finished. No caller API key is needed. For compact visualization, first confirm section_top80_v1 is advertised by /v1/model, cache /v1/activity-layout, and request that activity_view with top_k:0. Omit activity data when no visualization is shown."},"endpoints":[{"url":"https://www.promptbox.cn/api/doomfly.php","methods":["GET","POST","DELETE"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/doomfly.json"},{"id":"email","name":"email.php","description":{"what":"Sends a plain-text email immediately and returns a JSON delivery result. The sender is adam@promptbox.cn; a different valid sender value becomes the Reply-To address. Verify the recipient, subject, and body before calling.","how":"Prefer POST with the recipient, subject, and message fields below. Check the JSON result before reporting success. An uncertain result may still have sent the message; verify before sending it again."},"endpoints":[{"url":"https://www.promptbox.cn/api/email.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/email.json"},{"id":"ffmpeg_helper","name":"ffmpeg_helper.php","description":{"what":"Inspects, converts, or creates a thumbnail from an uploaded audio or video file using safe FFmpeg presets. Conversion defaults to MP4 and also supports WebM, MP3, M4A, WAV, and GIF, with uploads up to 300 MB and durations up to 600 seconds. The helper returns metadata as JSON or raw media bytes and has no Promptbox request quota.","how":"Send a multipart request with an action and the uploaded media file. Use info or probe for JSON metadata, convert for converted media bytes, or thumbnail for a JPEG image."},"endpoints":[{"url":"https://www.promptbox.cn/api/ffmpeg_helper.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/ffmpeg_helper.json"},{"id":"html_gen","name":"html_gen.php","description":{"what":"Generates a self-contained HTML/CSS/JavaScript browser tool from a text description, publishes it on Promptbox, and returns its public URL. Choose it to create a new static tool; use publish.php to deploy an existing build. It does not create server-side code or new REST endpoints.","how":"POST action=start with a prompt, save task_id, and check action=status later. Do not poll continuously or restart a pending job. When job.status is completed, open url; when it is failed, read job.error. Generated tools are public, so keep secrets out of the prompt."},"endpoints":[{"url":"https://promptbox.cn/api/html_gen.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/html_gen.json"},{"id":"image_gen","name":"image_gen.php","description":{"what":"Preferred helper for ordinary text-to-image requests. Generates a PNG from a text prompt, with portrait 3:4 output by default and landscape 4:3 available. It does not accept reference images; choose image_gen_gemini.php or image_gen_seedream.php for image editing.","how":"Send prompt by GET or POST and read the successful response as image/png. Choose orientation and other optional settings below. Use an editing helper when the request includes an existing image."},"endpoints":[{"url":"https://www.promptbox.cn/api/image_gen.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/image_gen.json"},{"id":"image_gen_gemini","name":"image_gen_gemini.php","description":{"what":"Generates an image or edits one reference image, with 1K output and portrait 3:4 by default. Accepts PNG, JPEG, WebP, HEIC, or HEIF input up to 20 MB. Choose this helper for editing with one reference; use image_gen_seedream.php for multiple references or higher resolution, and image_gen.php for ordinary text-to-image requests.","how":"Send prompt by GET or POST. For editing, POST an uploaded or base64 reference image using the fields below. Save or display the returned image bytes."},"endpoints":[{"url":"https://www.promptbox.cn/api/image_gen_gemini.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/image_gen_gemini.json"},{"id":"image_gen_seedream","name":"image_gen_seedream.php","description":{"what":"Generates or edits images using up to 14 reference images. Supports 2K, 4K, or explicit dimensions from 1440 to 4096 pixels per side. Choose it for multiple references or high-resolution editing; use image_gen.php for ordinary text-to-image requests.","how":"Send prompt and any reference images using the fields below. Choose dimensions when needed, then save or display the returned image bytes."},"endpoints":[{"url":"https://www.promptbox.cn/api/image_gen_seedream.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/image_gen_seedream.json"},{"id":"kgraph","name":"kgraph.php","description":{"what":"Creates, reads, updates, deletes, and queries persistent knowledge graphs containing nodes, relationships, and notes. Supports up to 5,000 nodes and 10,000 edges per graph, with no Promptbox request quota. Graph files are publicly accessible; do not store secrets or confidential information.","how":"Send an action, graph_id, and the fields required by that action. Save the graph ID for later calls and inspect the JSON result. Use the query action to ask questions about the stored graph."},"endpoints":[{"url":"https://www.promptbox.cn/api/kgraph.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/kgraph.json"},{"id":"llm","name":"llm.php","description":{"what":"Preferred LLM helper for ordinary text requests. Answers questions, summarizes, translates, and generates text. Defaults to glm-5.3 with low reasoning effort and no Promptbox request quota; model=pro selects deepseek/deepseek-v4-flash. Use a multimodal helper for images, audio, or files.","how":"Send prompt by GET or POST and read the answer as plain text. Set reasoning_effort to low, high, or max; medium is an alias for high. Set max_tokens up to 32768 when a longer answer or reasoning needs room; use the optional model and timeout settings below when needed."},"endpoints":[{"url":"https://www.promptbox.cn/api/llm.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/llm.json"},{"id":"llm_chatgpt","name":"llm_chatgpt.php","description":{"what":"Returns a plain-text answer with selectable OpenAI models and optional image input. Choose it when you specifically need an OpenAI model; use llm.php for ordinary text requests. Defaults to gpt-6.1-sol with low reasoning and the Promptbox request-count limit. The lite route uses gpt-6-luna and is exempt from that limit.","how":"Send prompt by GET or POST and read the answer as plain text. POST JSON when supplying images. Set model=lite for Luna or another supported model name when needed. Use reasoning_effort to override the model default and max_tokens up to 32768 to allow room for reasoning and the answer."},"endpoints":[{"url":"https://www.promptbox.cn/api/llm_chatgpt.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/llm_chatgpt.json"},{"id":"llm_gemini","name":"llm_gemini.php","description":{"what":"Returns a plain-text Gemini answer from text, images, audio, files, or structured Gemini content. Choose this helper when native voice/audio input is needed. Use llm.php for ordinary text. Defaults to gemini-3-flash-preview without specifying thinking effort; Gemini uses its own default when no thinking controls are supplied. The standard route allows 300 requests per rolling day; model=lite selects gemini-3.1-flash-lite and is exempt from that limit.","how":"POST the prompt and audio as Gemini parts or contents, then read the answer as plain text. Set model=lite for the lightweight model. Use the fields below for images, conversation history, system instructions, or generation settings."},"endpoints":[{"url":"https://www.promptbox.cn/api/llm_gemini.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/llm_gemini.json"},{"id":"llm_jb","name":"llm_jb.php","description":{"what":"Returns text or multimodal answers through a simple prompt endpoint or OpenAI-compatible chat routes. Choose it for OpenAI-compatible clients, function-tool workflows, or automatic multimodal routing; use llm.php for ordinary text. Text-only requests use the default model in llm.php. Non-text input uses the default model in llm_gemini.php. Each route inherits its downstream helper's request limits; model selection stays centralized in those helpers. Streaming returns the completed answer in one chunk, not token by token.","how":"For simple calls, send prompt to llm_jb.php and read plain text. For OpenAI-compatible clients, set the base URL to https://www.promptbox.cn/api/llm_jb.php/v1 and POST messages to /chat/completions; GET /models lists models. Send attachments using the documented image or Gemini content fields. Set skip_prefix=true to use only your own instructions. Use provider=gemini to send text through the default model in llm_gemini.php. The optional model field is accepted for compatibility and does not override either helper's default, including when set to lite. Check HTTP errors and Retry-After before retrying."},"endpoints":[{"url":"https://www.promptbox.cn/api/llm_jb.php","methods":["GET","POST"]},{"url":"https://www.promptbox.cn/api/llm_jb.php/v1/chat/completions","methods":["POST"]},{"url":"https://www.promptbox.cn/api/llm_jb.php/v1/models","methods":["GET"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/llm_jb.json"},{"id":"memory","name":"memory.php","description":{"what":"Creates and manages persistent structured memory for preferences, project context, knowledge, and tasks. Supports section-specific additions, exact item edits, consolidation, and semantic forgetting. Memory files are publicly accessible and limited to 400,000 bytes; do not store secrets, confidential material, or sensitive personal information.","how":"Send an action and memory_id with the fields required by that action. Save the memory ID for later calls. Use include_ids=true to retrieve item IDs for exact edits; use forget with item_id to remove one item and purge to delete the entire memory. Mutating actions require POST."},"endpoints":[{"url":"https://www.promptbox.cn/api/memory.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/memory.json"},{"id":"music_gen","name":"music_gen.php","description":{"what":"Creates vocal songs from a prompt and lyrics, or instrumental music, and returns a job ID for later status checks and audio download. Supports MP3 and WAV. Prompts must contain 10–2,000 characters; vocal lyrics must contain 10–3,000 characters.","how":"POST a prompt and lyrics for a vocal track, or set is_instrumental for an instrumental. Save the generation ID, check status later with GET, and request action=audio when complete. Do not poll continuously."},"endpoints":[{"url":"https://www.promptbox.cn/api/music_gen.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/music_gen.json"},{"id":"notes","name":"notes.php","description":{"what":"Creates, reads, searches, edits, completes, restores, and deletes persistent JSON notes with titles, text, status, tags, timestamps, and optional metadata. The default overview action lists up to 100 notes, while individual note text may contain up to 50,000 characters. The helper has no Promptbox request quota, but stored notes are publicly accessible and must not contain secrets.","how":"Send an action with the fields required for that operation and save returned note IDs for later edits. Notes are publicly accessible, so do not store secrets, confidential material, or sensitive personal information."},"endpoints":[{"url":"https://www.promptbox.cn/api/notes.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/notes.json"},{"id":"pdf_creator","name":"pdf_creator.php","description":{"what":"Creates a downloadable PDF from finished text or converts one supported office document while preserving its layout. Text input supports page size, orientation, margins, fonts, headers, footers, and metadata. File uploads are limited to 10 MB. Returns PDF bytes.","how":"POST either content or one multipart file, with any optional page settings. Check the response status, then save the successful application/pdf bytes. Errors return JSON."},"endpoints":[{"url":"https://www.promptbox.cn/api/pdf_creator.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/pdf_creator.json"},{"id":"places","name":"places.php","description":{"what":"Searches named places and businesses, finds nearby results, and retrieves addresses, coordinates, ratings, websites, opening hours, phone numbers, prices, and reviews. No caller API key is needed. If an initial text search finds no location, the helper automatically geocodes the query with Photon/OpenStreetMap and retries Google once with a coordinate bias before returning a not-found error.","how":"Send GET or JSON POST with action=search, nearby, or details and the required fields below. Use a Google place ID from search results for details. Request only fields you display and show the required attribution. For street addresses, submit the complete address as query; fallback is automatic. Only returned Google IDs can be used for details. Fallback coordinates are a search hint, not a verified house destination. Review the fallback response before displaying or using coordinates."},"endpoints":[{"url":"https://www.promptbox.cn/api/places.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/places.json"},{"id":"publish","name":"publish.php","description":{"what":"Publishes static HTML or ZIP web apps, supported documents, and media files to public Promptbox URLs. App deployments use private owner tokens and can be inspected, completely replaced, extended, deleted, or assigned a new token; each app has a renewable 30-day period. App uploads are limited to 25 MiB, file publications to 10 MiB, and static apps cannot run server-side code.","how":"For an app, POST mode=app, a directory name, and either an HTML file, a complete ZIP build, or HTML text. Save the returned private token outside the published files. Use that token for later status, files, replace, extend, delete, or rotate-token operations. Every replacement must contain the complete app. For a document or media file, POST mode=file with one multipart file."},"endpoints":[{"url":"https://www.promptbox.cn/api/publish.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/publish.json"},{"id":"qr","name":"qr.php","description":{"what":"Creates a downloadable PNG QR code card for a website, email address, or Wi-Fi network. Output is 600 by 600 pixels without a title and 600 by 800 pixels with one, with medium QR error correction. It has no Promptbox request quota; Wi-Fi passwords should be sent by POST so they do not appear in a URL.","how":"Send a destination or Wi-Fi fields by GET or POST, then display or save the returned image/png. Prefer POST for Wi-Fi passwords so credentials do not appear in a URL."},"endpoints":[{"url":"https://www.promptbox.cn/api/qr.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/qr.json"},{"id":"rag","name":"rag.php","description":{"what":"Answers a text or audio question using documents in a Gemini File Search store and returns a concise, document-grounded JSON result. Choose it when answers should come from your uploaded documents. Create and populate the store with rag-management.php. Defaults to gemini-3-flash-preview; voice input is limited to 5 MB.","how":"Send a question and store_id by GET or POST; use the full File Search store resource name when available. For audio, use the documented POST fields. Inspect the JSON answer and HTTP status before retrying."},"endpoints":[{"url":"https://www.promptbox.cn/api/rag.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/rag.json"},{"id":"rag-management","name":"rag-management.php","description":{"what":"Creates, finds, lists, and deletes Gemini File Search stores, and uploads or manages their documents for use with rag.php. Uploads are limited to 20 MB per document; default document chunks contain 512 tokens with a 100-token overlap. Returns resource names for later requests; create, upload, and delete actions change stored data.","how":"Send an action and the fields required below. Use resolve_filestore to find or create a store by exact display name. Save returned resource names and verify resulting state before retrying an uncertain create, upload, or delete request."},"endpoints":[{"url":"https://www.promptbox.cn/api/rag-management.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/rag-management.json"},{"id":"rate-limit","name":"rate-limit.php","description":{"what":"Checks and records rolling daily and optional hourly request usage for a named program. New programs default to 300 requests per rolling day with no hourly limit, while existing programs may have custom limits. Use action=check for a non-consuming inspection and action=record to consume one request; denials return HTTP 429 and Retry-After.","how":"Send a program name and action=check to inspect availability or action=record to consume usage. Read the JSON response, and honor HTTP 429 and its Retry-After value."},"endpoints":[{"url":"https://www.promptbox.cn/api/rate-limit.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/rate-limit.json"},{"id":"steam","name":"steam.php","description":{"what":"Retrieves Steam user reviews or searches community discussions for a game identified by name. Discussion search is the default; reviews=true selects reviews. Optional search terms narrow discussions, and unresolved game names return suggestions for a corrected request.","how":"Send game_name by GET or POST. Set reviews=true for reviews or supply search_terms to narrow community discussions. Read the result in the documented response format and use returned suggestions if the game name cannot be resolved."},"endpoints":[{"url":"https://www.promptbox.cn/api/steam.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/steam.json"},{"id":"stock","name":"stock.php","description":{"what":"Returns stock quotes, company profiles, and financial metrics for a ticker symbol, ISIN, or CUSIP. Returns all three sections by default; callers may request selected sections or metric groups. Quotes may be delayed, so check timestamps and warnings before using them.","how":"Send the security identifier by GET or POST. Use sections to select quote, profile, or financials and financial_metric when needed. Inspect the JSON result, including timestamps and warnings."},"endpoints":[{"url":"https://www.promptbox.cn/api/stock.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/stock.json"},{"id":"transcribe","name":"transcribe.php","description":{"what":"Transcribes uploaded or base64-encoded spoken audio into plain text. Accepts common browser audio formats up to 10 MB. Recordings shorter than 0.5 seconds, silence, or unintelligible audio may return null. Use llm_gemini.php when you need an answer to recorded speech rather than a transcript.","how":"POST an audio file as multipart form data or use the supported base64 audio fields below. Read the successful response as plain text. Supply a custom prompt only when a particular transcript format is needed."},"endpoints":[{"url":"https://www.promptbox.cn/api/transcribe.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/transcribe.json"},{"id":"transcript","name":"transcript.php","description":{"what":"Returns existing captions for a public YouTube video in a JSON transcript field. Choose it for captions from one known video; use youtube.php to research a topic across videos or transcribe.php for your own audio. It does not generate missing captions. Cached captions may be up to 30 days old when a refresh fails; check stale and any warning.","how":"Send an 11-character videoId or a YouTube URL by GET or POST and read transcript from the JSON result. Check cache and error fields. If captions are temporarily unavailable, skip the video or offer an explicit later retry rather than polling."},"endpoints":[{"url":"https://www.promptbox.cn/api/transcript.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/transcript.json"},{"id":"transfer","name":"transfer.php","description":{"what":"Uploads temporary files, returns eight-character receipts and download URLs, reports receipt metadata, streams stored files, and supports explicit deletion. Files expire after three days and are deleted after the first API download by default unless auto_delete=0 is supplied. Each upload may be roughly 850 MB, but callers should inspect the JSON receipt before relying on storage.","how":"POST multipart files with action=upload, save the returned receipt, and use its browser or API download URL. Files expire after three days and are deleted after the first API download by default unless auto_delete=0 was supplied."},"endpoints":[{"url":"https://www.promptbox.cn/api/transfer.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/transfer.json"},{"id":"tts","name":"tts.php","description":{"what":"Converts up to 50,000 characters of text into one MP3 or WAV speech file, or streams complete WAV blocks for earlier playback, with selectable voices and speed. Defaults to shimmer (Katerina), MP3, and normal speed. Supports Chinese, English, French, German, Russian, Italian, Spanish, Portuguese, Japanese, and Korean. Voice aliases are accepted; hear the selected voice before relying on its accent or timbre.","how":"Send text by GET, JSON POST, or form POST, with optional voice, format, and speed. Save or play the returned audio bytes. For earlier playback, set stream=true and decode each WAV audio record from the application/x-ndjson response as it arrives. This is block streaming: the provider synthesizes each block completely. Do not wait for the whole response or automatically repeat a partially played request."},"endpoints":[{"url":"https://www.promptbox.cn/api/tts.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/tts.json"},{"id":"tts_inworld","name":"tts_inworld.php","description":{"what":"Converts up to 50,000 characters of text into one MP3 or WAV speech file using selectable Inworld voices. Defaults to Ashley and MP3. If Inworld is unavailable, a backup voice may sound different and supports only the ten languages documented for tts.php.","how":"Send text by GET or POST with optional voice and format. Save or play the returned audio bytes. Send smaller blocks sequentially for earlier playback."},"endpoints":[{"url":"https://www.promptbox.cn/api/tts_inworld.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/tts_inworld.json"},{"id":"twitter","name":"twitter.php","description":{"what":"Searches public Twitter/X, Facebook, and Reddit posts or comments and returns a formatted summary plus structured results. Defaults to Twitter/X, Facebook, and Reddit posts; select Reddit comments explicitly. Supports sorting, pagination, and optional Facebook sentiment. Queries are limited to 500 characters.","how":"Send query by GET or POST and choose platforms when needed. Start with one page per platform. Read the structured results to display links, authors, and metadata, and check any warnings."},"endpoints":[{"url":"https://www.promptbox.cn/api/twitter.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/twitter.json"},{"id":"video_compress","name":"video_compress.php","description":{"what":"Compresses an uploaded MP4 into a smaller phone-compatible H.264/AAC MP4 using FFmpeg. The default balanced profile caps the long edge at 1280 pixels; small and quality target roughly 540p and 1080p, respectively. It accepts files up to 600 MB, has no Promptbox request quota, and retains no output unless save is explicitly enabled.","how":"POST the source in the multipart video field with any optional compression settings, then save the returned video/mp4 bytes. Enable save only when a public archived copy is required."},"endpoints":[{"url":"https://www.promptbox.cn/api/video_compress.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/video_compress.json"},{"id":"web","name":"web.php","description":{"what":"Searches the live web and returns a number or a plain-text answer. The default returns the first number found; text=true returns prose. Queries are capped at 400 characters, and url can restrict the source domain. Use web_read.php to read a particular page or file.","how":"Send prompt by GET or POST and read plain text. Set text=true for a prose answer, max_sentences for a length cap, or url for a source domain. Use mode=image_prompt_refine only to improve an image prompt; that mode does not search the web."},"endpoints":[{"url":"https://www.promptbox.cn/api/web.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/web.json"},{"id":"web_read","name":"web_read.php","description":{"what":"Extracts text and source metadata from one public URL or uploaded file, including webpages, PDFs, office documents, feeds, images, media, and YouTube captions. Images use llm_chatgpt.php with model=lite (currently gpt-6-luna) at original resolution. JPEG, PNG, and WebP bytes are sent unchanged; other image formats are converted to full-resolution PNG, using the first frame for animated images. Document and text-bearing pictures request every readable word, number, table cell, footnote, and handwritten note in the original language and reading order, with unreadable portions marked [illegible]; scenes receive a description plus all visible text. Search terms return a generated search summary with source links/snippets, answer status and warnings. Search success is not answer verification; insufficient or mismatched-date evidence needs a targeted follow-up. Uploads and supported document downloads are limited to 10 MB; oversized downloads return an error instead of partial file bytes. PDFs are limited to 30 pages per request. Each page is checked separately: usable embedded text is preserved, while pages with images/form objects or unusable text are rendered at 240 dpi (up to 3200 pixels per side, lossless PNG) for OCR in batches of up to three pages. Page boundaries, paragraph breaks, table spacing, and literal characters are retained. OCR responses must finish normally and cover every requested page; failures are errors, never silent partial success. Automatic checks cannot detect every faulty text layer; use pdf_ocr=always to visually transcribe all pages. OCR may misread characters or numbers; verify critical values against the original. Uncertain spans are marked [illegible]. PDF, Office, ebook, plain/structured text, email and feed output defaults to 500,000 characters for URLs and uploads, with explicit caller limits respected. Image output defaults to 500,000 characters, supports an explicit max_chars up to 500,000, and requests up to 32,768 model completion tokens including reasoning; exceptionally dense images may exceed the model output allowance. HTML, media transcripts and search output default to 12,000 characters and are capped at 30,000 for URLs/search or 500,000 for uploads. Direct HTTP reading follows up to 10 redirects, validating each destination. An eleventh redirect returns HTTP 424 with error_kind:\"target_redirect_error\"; this error does not invoke browser or search fallback. Empty HTML or recognizable JavaScript/loading shells first use browser.php in a new isolated session, with no saved login profile. The reader waits once for 2.5 seconds after navigation and extracts rendered main-page text, then closes its session. Version 3.4 also retries HTTP 403 HTML responses once in an isolated browser, with one 8-second wait for automatic page loading. Successful retries return reader_mode: \"browser_text\" and browser_fallback.trigger_status: 403. Persistent login or verification challenges return target_access_required; unavailable browser reads preserve the HTTP error. This 403 path does not use search fallback or submit challenges. Short valid pages stay on direct extraction. If browser reading is unavailable or still has no useful text, Tavily is the final search fallback. Search answers may summarize a source rather than reproduce the full page. DOCX preserves paragraphs/tables and includes headers, footers, footnotes, endnotes and comments. PPTX follows presentation slide order and includes speaker notes. XLSX preserves sheet order, cell addresses, shared strings, dates, numeric formatting, booleans, comments, hyperlinks and merged ranges; saved formula results are labeled and never recalculated. EPUB follows the package spine rather than ZIP order. ODT preserves document text, tables and headers/footers. RTF decodes Unicode and escaped text; EML decodes MIME headers and message bodies while listing attachments separately. JSON retains its original values and syntax, including false, null, empty values and large numbers. Plain text and CSV retain line breaks and literal characters; XML is returned as a labeled hierarchy. RSS/Atom include all entries up to the explicit 1,000-entry limit, including Atom link URLs. Office and ebook raster images use embedded-image OCR by default; see document_ocr and coverage warnings below. Legacy binary DOC/XLS/PPT files are explicitly unsupported.","how":"Supply exactly one url containing a public URL or search terms, or one multipart file. Use GET or POST for URLs/search and multipart POST for files. Inspect text, reader_mode, source_type, and truncated. For PDFs also inspect pdf.page_count, pdf.ocr_pages, pdf.blank_pages, and pdf.warnings. Inspect document.extraction_complete and document.warnings for non-PDF documents. Set document_ocr=off when only native Office/ebook text is needed. Submit email attachments separately. Split PDFs exceeding 30 pages into smaller files. OCR can take several minutes; each batch consumes one shared Gemini request and inherits its rate limit. The only automatic HTTP-error retry is the single browser attempt for HTML 403 responses. Set fallback=off to disable both browser and search fallback and use direct extraction only. Search terms still perform a search, with a 400-character query cap. Inspect answer_status and sources before relying on a search answer; for time-sensitive questions match the source date and destination timezone. Search queries do not automatically enter the URL browser-rendering fallback."},"endpoints":[{"url":"https://www.promptbox.cn/api/web_read.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/web_read.json"},{"id":"youtube","name":"youtube.php","description":{"what":"Searches YouTube, reads available captions from up to five relevant videos, and returns an answer based on those transcripts. Choose it to research a question across videos; use transcript.php for captions from one known video. Videos without accessible captions are skipped.","how":"Send a question in prompt by GET or POST and read the JSON content answer. If no usable videos or captions are available, inspect the error and offer an explicit later retry. Do not poll."},"endpoints":[{"url":"https://www.promptbox.cn/api/youtube.php","methods":["GET","POST"]}],"catalog_url":"https://www.promptbox.cn/api/catalog/youtube.json"}]}