{"tools":[{"type":"function","function":{"name":"auth","description":"Sign up or sign in to email59. Pass email to have a 6-digit code emailed, then call again with email and otp to get a session key (a new email is signed up with 200 free emails a day). Or pass api_key to swap an API key for a session key. Send the key as the HTTP header 'Authorization: Bearer <session_key>'.","parameters":{"type":"object","properties":{"email":{"type":"string","description":"Email address."},"otp":{"type":"string","description":"The 6-digit code from the email."},"api_key":{"type":"string","description":"An e59_live_ API key, instead of email."}}}}},{"type":"function","function":{"name":"get_pricing","description":"Free daily emails (renewed every day), email credits per dollar, and the packs on sale. No sign-in needed.","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"get_account","description":"The signed-in account: email, daily_limit, sent_today, remaining_today, credits_remaining, resets_at.","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"update_account","description":"Set the name or company on the account.","parameters":{"type":"object","properties":{"name":{"type":"string"},"company":{"type":"string"}}}}},{"type":"function","function":{"name":"send_email","description":"Send one transactional email (receipt, code, alert) to one recipient. Uses 1 email of today's allowance. Marketing mail must go through send_campaign.","parameters":{"type":"object","properties":{"from":{"type":"string","description":"Name before the @ (e.g. hello). The domain is always email59.com. Optional."},"to":{"type":"string","description":"Recipient address."},"subject":{"type":"string"},"text":{"type":"string","description":"Plain-text body. Give text, html or both."},"html":{"type":"string","description":"HTML body."}},"required":["to","subject"]}}},{"type":"function","function":{"name":"send_campaign","description":"Send a marketing email to up to 1,000 recipients through Zoho Campaigns, which adds the unsubscribe link. Invalid, role, blocked or unsubscribed recipients are skipped and cost nothing; each accepted recipient uses 1 email of today's allowance. A campaign that doesn't fit what's left today is refused whole.","parameters":{"type":"object","properties":{"from":{"type":"string","description":"Name before the @ (e.g. hello). The domain is always email59.com. Optional."},"subject":{"type":"string"},"html":{"type":"string"},"text":{"type":"string"},"list_id":{"type":"string","description":"Your name for this audience, used for unsubscribes."},"recipients":{"type":"array","items":{"type":"string"},"description":"Recipient addresses (max 1,000)."}},"required":["subject","recipients"]}}},{"type":"function","function":{"name":"check_email","description":"Free deep check of an email address, no sign-in needed: format, provider username rules, disposable and role addresses, and the domain's MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT and BIMI records. Returns a report with a score (0-99, likelihood the address is real) and a verdict (likely_valid, risky, likely_invalid, unknown). Gmail, Outlook and other big providers skip DNS. No email is sent.","parameters":{"type":"object","properties":{"email":{"type":"string","description":"Email address."}},"required":["email"]}}},{"type":"function","function":{"name":"validate_email","description":"Check an address before sending. Verdicts: ok, invalid, no_mx, disposable, role.","parameters":{"type":"object","properties":{"email":{"type":"string","description":"Email address."}},"required":["email"]}}},{"type":"function","function":{"name":"block","description":"Block an email address or a whole domain for this account. Sends to it are refused.","parameters":{"type":"object","properties":{"kind":{"type":"string","enum":["email","domain"]},"value":{"type":"string","description":"The address or domain."},"reason":{"type":"string"}},"required":["kind","value"]}}},{"type":"function","function":{"name":"unblock","description":"Remove an email address or domain from the blocklist.","parameters":{"type":"object","properties":{"kind":{"type":"string","enum":["email","domain"]},"value":{"type":"string"}},"required":["kind","value"]}}},{"type":"function","function":{"name":"list_blocklist","description":"The account's blocked addresses and domains.","parameters":{"type":"object","properties":{}}}},{"type":"function","function":{"name":"add_unsubscribe","description":"Record an opt-out. Campaigns to that list (or every list, if list_id is empty) skip the address.","parameters":{"type":"object","properties":{"email":{"type":"string","description":"Email address."},"list_id":{"type":"string","description":"Empty = every list."}},"required":["email"]}}},{"type":"function","function":{"name":"buy_pack","description":"Start buying a pack (pack_1 = $1, pack_10 = $10, pack_50 = $50; each $1 adds 1,000 email credits, which don't renew and last until used). Returns a checkout_url for a person to pay; the credits arrive once the payment clears. First show the person the refund policy and terms from GET /v1/policy; pass agree=true and its version only after they agree.","parameters":{"type":"object","properties":{"pack_id":{"type":"string"},"agree":{"type":"boolean","description":"The person agreed to the refund policy and terms (GET /v1/policy)"},"policy_version":{"type":"string","description":"version from GET /v1/policy"}},"required":["pack_id","agree","policy_version"]}}},{"type":"function","function":{"name":"order_status","description":"Status of an order from buy_pack: pending or paid.","parameters":{"type":"object","properties":{"order_id":{"type":"integer"}},"required":["order_id"]}}},{"type":"function","function":{"name":"create_api_key","description":"Create a long-lived e59_live_ API key (max 10 per account). It is shown only once.","parameters":{"type":"object","properties":{"label":{"type":"string"}}}}},{"type":"function","function":{"name":"list_api_keys","description":"The account's API keys (ids and labels, never the keys themselves).","parameters":{"type":"object","properties":{}}}}]}