
Flower, Fruit Basket, Balloon Delivery
Available ActionsEach successful request consumes credits as outlined below.
Details
Now your agent can send beautiful flower arrangements, balloon bouquets, and even fruit baskets! FloristOne delivers anywhere in the US and Canada, with same-day or scheduled delivery. Browse curated collections for birthdays, anniversaries, sympathy, and special occasions. Handle corporate flower and gift delivery in seconds. Send sympathy arrangements, employee recognition gifts, client thank-yous, and more. Add a personalized message on behalf of your company and choose same-day or scheduled delivery. The easy way to manage personal and business gifting in seconds. ***Phone app installation required to approve credit card payment*** Download from here - https://www.agentpmt.com/download-mobile-app
Use Cases
Send birthday flowers with a personalized message, order sympathy arrangements for a funeral home, browse anniversary and romance collections, schedule flower delivery for a specific date, thank a client with a fruit basket, recognize an employee with a surprise delivery, send get-well wishes to a hospital, congratulate someone with a balloon bouquet
Connect Your Agent In 5 Min
Watch the setup guide for your platform
Or Install Locally
STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to https://api.agentpmt.com/mcp. All tool execution happens in the cloud and the server cannot edit any files on your computer.
npm install -g @agentpmt/mcp-routeragentpmt-setupcurl -X POST "https://api.agentpmt.com/products/purchase" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ********" \
-d '{
"product_id": "6978d75991f9084339798ede",
"parameters": {
"action": "list_categories"
}
}'import requests
import json
url = "https://api.agentpmt.com/products/purchase"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
}
data = {
"product_id": "6978d75991f9084339798ede",
"parameters": {
"action": "list_categories"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "6978d75991f9084339798ede",
parameters: {
"action": "list_categories"
}
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));const axios = require('axios');
const url = "https://api.agentpmt.com/products/purchase";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer ********"
};
const data = {
product_id: "6978d75991f9084339798ede",
parameters: {
"action": "list_categories"
}
};
axios.post(url, data, { headers })
.then(response => {
console.log(response.status);
console.log(response.data);
})
.catch(error => {
console.error("Error:", error.message);
});Login to view your API and budget keys. The example above uses placeholder values. Sign in to see personalized code with your bearer token.
This tool supports credit-based access for external agents using AgentAddress identities or standard crypto wallets. External agents should use the External Agent API to buy credits with x402 and invoke this tool.
1. Buy Credits
Purchase credits via x402 payment (500 credit minimum, 100 credits = $1).
# Request payment requirements (returns 402 + PAYMENT-REQUIRED header)
curl -i -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'
# Sign the EIP-3009 authorization, then retry with signature header
curl -s -X POST "https://www.agentpmt.com/api/external/credits/purchase" \
-H "Content-Type: application/json" \
-H "PAYMENT-SIGNATURE: <base64-json>" \
-d '{ "wallet_address":"0xYOUR_WALLET", "credits": 500, "payment_method":"x402" }'2. Create a Session Nonce (nonce used in signed balance/invoke)
curl -s -X POST "https://www.agentpmt.com/api/external/auth/session" \
-H "Content-Type: application/json" \
-d '{ "wallet_address":"0xYOUR_WALLET" }'3. Invoke This Tool
Sign the message with your wallet (EIP-191 personal-sign), then POST to the invoke endpoint.
# Sign this message (wallet MUST be lowercased):
# agentpmt-external
# wallet:0xyourwallet...
# session:<session_nonce>
# request:<request_id>
# action:invoke
# product:6978d75991f9084339798ede
# payload:<sha256(canonical_json(parameters))>
curl -s -X POST "https://www.agentpmt.com/api/external/tools/6978d75991f9084339798ede/invoke" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xYOUR_WALLET",
"session_nonce": "<session_nonce>",
"request_id": "invoke-uuid",
"signature": "0x<signature>",
"parameters": {
"action": "your_action",
"your_param": "value"
}
}'Credentials
Manage credentials in your dashboard.
Actions(6)
list_categories0 paramsReturns all available product categories grouped by type (Occasions, Product Types, Funeral, Price Ranges, Seasonal, Other).
list_categories0 paramsReturns all available product categories grouped by type (Occasions, Product Types, Funeral, Price Ranges, Seasonal, Other).
No parameters for this action.
search_products5 paramsSearch for flower products by category name/alias or by a specific product code. Provide exactly one of category or product_code.
search_products5 paramsSearch for flower products by category name/alias or by a specific product code. Provide exactly one of category or product_code.
categorystringCategory name, alias, or code from list_categories (e.g., "Birthday", "roses", "bd")
product_codestringFlorist One product code (e.g., "F1-509", "E2-4305")
limitintegerMax results to return (default 12, max 50)
12pageintegerPage number for pagination (1-based, default 1)
1sortstringSort order (default: popularity)
get_order_total3 params(2 required)Get the full price breakdown (product price, delivery fee, tax, order total) and resolved delivery date for a product and recipient ZIP code. Must be called before place_order.
get_order_total3 params(2 required)Get the full price breakdown (product price, delivery fee, tax, order total) and resolved delivery date for a product and recipient ZIP code. Must be called before place_order.
product_coderequiredstringFlorist One product code from search results
recipient_zipcoderequiredstringRecipient's ZIP/postal code
delivery_datestringDesired delivery date (MM-DD-YYYY). If omitted, the soonest available date is returned.
place_order7 params(5 required)Place a flower delivery order. Requires calling get_order_total first and confirming the total with the user. A credit card request is sent to the user's mobile app after calling this action.
place_order7 params(5 required)Place a flower delivery order. Requires calling get_order_total first and confirming the total with the user. A credit card request is sent to the user's mobile app after calling this action.
product_coderequiredstringFlorist One product code to order
confirmed_totalrequirednumberThe order_total value returned by get_order_total, confirmed by the user
delivery_daterequiredstringDelivery date from get_order_total (MM-DD-YYYY)
recipientrequiredobjectDelivery recipient information
name*(string)- Recipient's full namephone*(string)- 10-digit phone numberaddress1*(string)- Street addressaddress2(string)- Apt/suite/unit (optional)city*(string)- Citystate*(string)- 2-letter state codezipcode*(string)- ZIP/postal codeinstitution(string)- Hospital, funeral home, or other facility name (optional)card_messagerequiredstringMessage on the card (max 200 characters)
special_instructionsstringDelivery instructions (max 100 characters)
idempotency_keystringOptional key to prevent duplicate orders when retrying
get_order1 param(1 required)Look up a completed order by its Florist One confirmation number.
get_order1 param(1 required)Look up a completed order by its Florist One confirmation number.
ordernorequiredstringFlorist One confirmation number
list_orders2 paramsList past flower delivery orders with pagination.
list_orders2 paramsList past flower delivery orders with pagination.
limitintegerMax results to return (default 12, max 50)
12offsetintegerSkip first N results (default 0)
0Usage Instructions
Usage guidance provided directly by the developer for this product.
Florist One Flowers
Overview
Search flower products by category or product code, get full pricing with delivery fees and tax, and place flower delivery orders across the US. Prices shown in search results are product prices only — a $19.99 delivery fee and applicable sales tax are added at checkout.
Actions
list_categories
Returns all available product categories grouped by type.
Required fields: none
Example:
{"action": "list_categories"}
Returns categories grouped as: Occasions (Best Sellers, Every Day, Birthday, Anniversary, Love & Romance, Get Well, New Baby, Thank You, Funeral and Sympathy), Product Types (Centerpieces, One Sided Arrangements, Vased Arrangements, Roses, Fruit Baskets, Plants, Balloons), Funeral Product Types (Funeral Best Sellers, Funeral Table Arrangements, Funeral Baskets, Funeral Sprays, Funeral Plants, Funeral Inside Casket, Funeral Wreaths, Funeral Hearts, Funeral Crosses, Funeral Casket Sprays, Funeral Urn Arrangements), Price Ranges (Under $60, $60–$80, $80–$100, Above $100, plus funeral equivalents), Seasonal Holidays (Christmas, Easter, Valentine's Day, Mother's Day), and Other (All Products).
search_products
Search for flower products by category name or by a specific product code. Provide exactly one of category or product_code — not both.
Required fields (one of):
category(string) — category name or alias from list_categories (e.g., "Birthday", "roses", "funeral sprays")product_code(string) — specific Florist One product code (e.g., "F1-509", "E2-4305")
Optional fields:
limit(integer, 1–50, default 12) — max results to returnpage(integer, min 1, default 1) — page number for paginationsort(string) — sort order:popularity(default),price_asc,price_desc,az,za
Example — search by category:
{"action": "search_products", "category": "Birthday", "limit": 6, "sort": "price_asc"}
Example — search by product code:
{"action": "search_products", "product_code": "E2-4305"}
Each product in results includes: code, name, price, dimension, description, thumbnail_url, image_url. The response also includes total_available for the total number of matching products.
get_order_total
Get the full price breakdown (product price, delivery fee, sales tax, order total) and resolved delivery date for a specific product and recipient ZIP code. You MUST call this before placing an order and confirm the total and delivery date with the user.
Required fields:
product_code(string) — the product code from search resultsrecipient_zipcode(string) — recipient's ZIP/postal code
Optional fields:
delivery_date(string, MM-DD-YYYY) — desired delivery date. If omitted, the soonest available date is returned.
Example:
{"action": "get_order_total", "product_code": "E2-4305", "recipient_zipcode": "30303"}
Example with specific date:
{"action": "get_order_total", "product_code": "E2-4305", "recipient_zipcode": "30303", "delivery_date": "04-15-2026"}
Returns: product_code, product_name, product_price, delivery_fee, tax, order_total, delivery_date, recipient_zipcode. If the requested date is unavailable, the response includes delivery_date_unavailable: true and a list of available_dates — ask the user to choose one, then call get_order_total again with that date.
place_order
Place a flower delivery order. You MUST call get_order_total first and confirm the total and delivery date with the user before calling this action. The order will be rejected if confirmed_total is missing or does not match the current order total.
After calling place_order, a credit card request is sent to the user's mobile app. The order completes automatically once the user approves and enters their card details.
Required fields:
product_code(string) — the product to orderconfirmed_total(number) — theorder_totalvalue returned by get_order_total, confirmed by the userdelivery_date(string, MM-DD-YYYY) — the delivery date from get_order_totalrecipient(object) — delivery recipient with these fields:name(string, required) — recipient's full namephone(string, required) — 10-digit phone numberaddress1(string, required) — street addressaddress2(string, optional) — apt/suite/unitcity(string, required) — citystate(string, required) — 2-letter state codezipcode(string, required) — ZIP/postal codeinstitution(string, optional) — hospital, funeral home, etc.
card_message(string, required, max 200 characters) — message on the card
Optional fields:
special_instructions(string, max 100 characters) — delivery instructionsidempotency_key(string) — prevents duplicate orders when retrying
Example:
{
"action": "place_order",
"product_code": "E2-4305",
"confirmed_total": 84.97,
"delivery_date": "04-15-2026",
"recipient": {
"name": "Jane Smith",
"phone": "4045551234",
"address1": "200 Peachtree St NW",
"city": "Atlanta",
"state": "GA",
"zipcode": "30303"
},
"card_message": "Happy Birthday! Thinking of you."
}
get_order
Look up a completed order by its confirmation number.
Required fields:
orderno(string) — the Florist One confirmation number returned by place_order
Example:
{"action": "get_order", "orderno": "FO-123456"}
list_orders
List past orders with pagination.
Optional fields:
limit(integer, 1–50, default 12) — max results to returnoffset(integer, min 0, default 0) — skip first N results
Example:
{"action": "list_orders", "limit": 10, "offset": 0}
Common Workflows
1. Browse and Order Flowers for a Birthday
list_categories— see available categoriessearch_productswithcategory: "Birthday"— browse birthday arrangementsget_order_totalwith the chosenproduct_codeandrecipient_zipcode— get full pricing and delivery date- Confirm the total and delivery date with the user
place_orderwith the confirmed details — sends payment request to user's mobile app
2. Send Sympathy Flowers to a Funeral Home
search_productswithcategory: "Funeral and Sympathy"— browse funeral arrangementsget_order_totalwith chosenproduct_code,recipient_zipcode, and optionally a specificdelivery_date- Confirm pricing with user
place_orderincludinginstitutionin the recipient object (e.g., the funeral home name)
3. Check Order Status
get_orderwith theordernofrom a previous order — view order details- Or
list_ordersto see all past orders
Important Notes
- Pricing: Search result prices are product-only. The $19.99 delivery fee and sales tax are only shown via get_order_total.
- Order flow is mandatory: Always call get_order_total before place_order. Always confirm the total and delivery date with the user. The order is rejected if confirmed_total does not match (tolerance: $0.01).
- Payment: place_order does not complete the order immediately. It sends a credit card request to the user's mobile app. The order is fulfilled automatically after the user approves.
- Same-day delivery cutoff: Same-day deliveries can only be processed if payment is approved by 12:00 PM in the recipient's time zone. If approved later, delivery is automatically moved to the next available date.
- Date format: Always use MM-DD-YYYY format for delivery_date.
- Idempotency: Use
idempotency_keywhen retrying to prevent duplicate orders. If a matching pending or completed order exists, the existing order is returned instead of creating a new one. - Category matching: Categories accept names, aliases, and codes (e.g., "Birthday", "bday", "bd" all work). Use list_categories if unsure.
- Card message limit: Maximum 200 characters for the card message, 100 characters for special instructions.
- Phone numbers: Must include at least 10 digits. Country codes are stripped automatically.
- US delivery only: ZIP codes must be valid US 5-digit codes (9-digit codes are truncated to 5). Canadian postal codes are also accepted.
About The Developer

Apoth3osis
Joined Agent Payment: August 14, 2025
We build tools that enable AI agents to excel in the mathematical realm.
Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.





