FoodPerfect Docs

Costs and balance

Agents pay exactly what the app pays. Each plan tops up a dollar balance every month, and generations draw from it at the plan's rates. Reading, planning, captions, scheduling and publishing are free.

#Prices per call

Tool Charged as Starter Growth Scale
generate_photo 1 image $0.24 $0.20 $0.15
edit_image 1 image $0.24 $0.20 $0.15
remove_background 1 image $0.24 $0.20 $0.15
upscale_image free (needs a plan or the trial; 100 a day) — — —
generate_promo 1 design $0.60 $0.50 $0.40
generate_menu 1 design $0.60 $0.50 $0.40
generate_post_example free (with generateImage: 1 image) — — —
generate_video_from_image 1 video clip ≤8 s $3.00 $3.00 $2.50
generate_reel_script 1 post $0.48 $0.40 $0.30
animate_reel_shot 1 animated shot (clip_5s) $0.80 $0.70 $0.60
generate_scheduled_post_content free (with generateImage: 1 post) — — —
send_reply 1 reply (if AI draft) $0.005 $0.004 $0.0035
resolve_reel_generators (legacy) 1 reel segment per AI clip block $4.00 $3.50 $3.00
Everything else free — — —

The trial uses Starter rates. Enterprise uses its agreed rates. The prices shown in the app and in Billing and Refund Terms are the ones that apply.

First-generation promos and menus are charged at the design rate (high quality, GPT Image 2.5). Photos, templates, and edits of existing promos or menus are charged at the image rate.

Some free tools have daily or hourly limits: generate_reel_storyboard 60 a day and scrape_trending_hooks 10 an hour. Brand analysis tools have rate limits: run_brand_analysis 5/h, regenerate_brand_dna 10/h. Inbox tools: draft_reply 30/min, sync_inbox 1/min.

#How the balance is charged

  • The charge is taken when the call starts. Your monthly plan balance is used first, then top-up packs, which never expire.
  • get_account returns the balance as totalBalanceUsd, and exactly as integer micro-dollars (totalBalanceMicros; 1,000,000 = $1).
  • A failed generation is refunded automatically (async jobs).

#Running low

When the balance can't cover a call, the tool returns insufficient_credits with what's needed:

Tool result
{ "error": { "code": "insufficient_credits", "retryable": false,
  "details": { "availableMicros": 120000, "requiredMicros": 240000 } } }

Your agent should stop and tell you, not retry. Top up or change plan in the app under Billing. If a paid subscription is past due or cancelled, paid tools return unauthorized until it's active again; free tools keep working.

#Keep spending predictable

  • Give agents that shouldn't spend a key without Generation Tools (scopes).
  • Ask the agent to state the cost before paid calls. The system prompt does this, and waits for your OK above three items.
  • Check the balance with get_account before and after a batch, or in the app's Billing page.