ghem_balance
ChatGPTRead the connected user’s available GHEM credits. dailyLimit is null when no authoritative daily allowance exists; never interpret null as unlimited.
ghem_complete_upload
ChatGPTVerify the uploaded file format and size, prepare images and return an owned asset ID. Idempotent: retry the same upload_id after a lost response. Does not generate or charge.
ghem_create_project
ChatGPTCreate an image/video project in the connected account. Generate a request UUID and reuse it on retries. Use the returned project ID in generation quotes to group new results. Requires projects:create; no credit charge.
ghem_create_upload
ChatGPTCreate a private, path-scoped upload URL valid for two hours. PUT the file bytes using its actual Content-Type, then call ghem_complete_upload. File IDs are not usable before confirmation. Do not print the temporary upload URL in ordinary conversation.
ghem_generate_batch
ChatGPTSubmit the unchanged approved quotes and exact total. Validates all quotes before first spend; stops on a failed submission. Submits at most six new jobs per call within a bounded time window. If complete is false, resume only resumable_quote_ids using their unchanged approvals and summed credits. Wait retry_after_seconds when present and resolve any reported error first. Replaying the SAME quote identities reuses prior jobs instead of charging twice. Never replace quotes after an uncertain response.
ghem_generate_image
ChatGPTSpends the exact approved quote credits. Requires explicit user approval of the returned price, model and prompt. Returns a job ID after submission, not after rendering. Supporting clients show an automatically updating GHEM preview. Retry only the same quote and acceptance; never create a new request after an uncertain result.
ghem_generate_video
ChatGPTSpends the exact approved quote credits. Requires explicit user approval of the returned price, model and prompt. Returns a job ID after submission, not after rendering. Supporting clients show an automatically updating GHEM preview. Retry only the same quote and acceptance; never create a new request after an uncertain result.
ghem_import_media
ChatGPTImport a public direct HTTPS image/video/WAV file into the connected user’s library. Does not accept web pages, redirects, credentials or internal addresses. Requires upload permission. Returns an asset ID after validation; no generation or credit charge.
ghem_job_status
ChatGPTRead a job owned by the connected user. Completed jobs include temporary links to owned output files. This does not poll a provider, regenerate, refund, or change the job.
ghem_jobs_status
ChatGPTRead up to 12 owned jobs in one call. Supporting clients display a branded gallery. Read-only: does not generate, retry, refund or charge.
ghem_list_assets
ChatGPTSearch the connected user’s uploaded and generated media by name. Returns asset IDs usable as references in quotes and temporary preview URLs. Use before asking the user to upload the same file again.
ghem_list_generations
ChatGPTRead up to 20 newest jobs owned by the connected user, with bounded summaries and temporary links to owned outputs. Does not expose other users’ work, including for admins.
ghem_list_projects
ChatGPTRead up to 50 recent projects in the connected account.
ghem_list_references
ChatGPTFind named products, characters, brands or environments by name. Reuse approved definition images as asset IDs in quotes and preserve approved invariants in the prompt. Unpublished drafts are not approved identity facts.
ghem_models
ChatGPTRead the enabled image or video models and their actual settings and reference limits. IDs and presets must come from this result; no prices are inferred from names.
ghem_quote
ChatGPTCreates a 15-minute price quote without spending. Use an explicit model_id from ghem_models. Image settings require size and quality; video settings require preset and optional aspect. For images use reference_asset_ids (or media entries with role image); if both are supplied their ordered IDs must match. For videos use media with the appropriate roles. References are owned GHEM asset IDs. Show the exact returned model, settings, prompt and price before requesting approval.
ghem_quote_batch
ChatGPTQuote 1–12 image/video requests with the SAME shared pricing service. Present every model/settings and the total before explicit approval. No spending. Execution is not atomic; partial failures are reported honestly.
ghem_rename_project
ChatGPTChange only an owned project’s name. Supply its current updated_at as expected_updated_at to protect concurrent edits. Does not alter prompts, settings or outputs; cannot delete or publish.
ghem_save_reference
ChatGPTSave or update an owned named reference after the user approves its name, images and facts. Uses existing website reference/version service, without paid analysis. New: omit id and use version 0. Update: pass existing id and exact current version. Never invent unseen identity details. Cannot delete or publish publicly.
ghem_upload_media
ChatGPTOpen a branded file picker inside supporting ChatGPT/Claude clients. The user selects an image/video/WAV file from their device; this tool cannot read chat attachments automatically. Requires the separately consented upload permission. No credits are spent.