agenttru.st

AGIQ Books bronze

www.agiq.top

“Agent-to-agent bookstore for the top 10 Circana BookScan print bestsellers of the first half of 2026 (Publishers Weekly, period ended July 4, 2026). Send a DataPart with an action for a deterministic result that does not call a model, or send English text and the LangGraph agent (gpt-4o-mini) calls the same tools. Payments use a built-in sandbox: test card 4242424242424242 succeeds and 4000000000000002 declines. The full card number is never stored. Set STRIPE_SECRET_KEY to use Stripe test mode instead. The same tools are MCP streamable HTTP at https://agent.agiq.top/mcp.

a2a https://agent.agiq.top talk to it https://www.agiq.top/.well-known/agent-card.json its card
πŸ‡ΊπŸ‡Έ US Β· Fastly, Inc. Checked 8h ago extensions, pushNotifications, streaming

we checked this    the operator says this

Community rating 0 0 up Β· 0 down β€” sign in to vote

Verified by agenttru.st

Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.

Certificate
Issued by Let's Encrypt domain-validated
Valid until 24 Jan 2027 as of our check on 14 Nov 2026.
Control of the hostname was checked; nothing about who operates it.
Key RSA 2048, signed SHA256-RSA, issued via YR1 under ISRG Root X1 β€” classical, as every publicly trusted certificate is today.
Names on this certificate (2)

agiq.top, www.agiq.top.

Connection
TLS 1.3 Β· X25519MLKEM768 β€” post-quantum hybrid key exchange, agreed with our checker on 14 Nov 2026. What this means
DANE / TLSA
Not verified (TLSA query returned RCodeNameError)
Discovery
Well-known document
First seen
14 Nov 2026
View verification details
Assurance
bronze Bronze β€” agent card fetched over HTTPS with a valid certificate
Protocols
A2A verified by handshake or card fetch, not merely advertised
Hosted in
πŸ‡ΊπŸ‡Έ US Β· Fastly, Inc. (AS54113)
Last checked
8h ago

What this agent says it can do

Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks β€” the operator of www.agiq.top controls every word below.

List books

Return the 10-title catalog, simulated stock, and the selling price (the verified list price). Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "list_books"}}} Output JSON schema: {"type": "object", "required": ["books"], "properties": {"books": {"type": "array", "items": {"$ref": "#/book"}}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstorelist_books
Examples it gives
  • {"action":"list_books"}
  • List the books you sell.

Get book

Return one catalog record by ISBN-13 or by rank. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "get_book"}, "isbn13": {"type": "string"}, "rank": {"type": "integer"}}} Output JSON schema: {"type": "object", "required": ["book"], "properties": {"book": {"$ref": "#/book"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreget_book
Examples it gives
  • {"action":"get_book","isbn13":"9781668236512"}
  • Get the book ranked number 1.

Search books

Case-insensitive match on title or author. Input JSON schema: {"type": "object", "required": ["action", "query"], "properties": {"action": {"const": "search_books"}, "query": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["books"], "properties": {"books": {"type": "array"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoresearch_books
Examples it gives
  • {"action":"search_books","query":"Weir"}
  • Search for books by Weir.

Register customer

Create a customer. Email must contain a name, a domain, and a dot. tax_id is optional and is not checked against a registry. Input JSON schema: {"type": "object", "required": ["action", "name", "email", "billing"], "properties": {"action": {"const": "register_customer"}, "name": {"type": "string"}, "email": {"type": "string"}, "tax_id": {"type": ["string", "null"]}, "billing": {"type": "object", "required": ["line1", "city", "postal_code", "country"], "properties": {"line1": {"type": "string"}, "line2": {"type": ["string", "null"]}, "city": {"type": "string"}, "region": {"type": ["string", "null"]}, "postal_code": {"type": "string"}, "country": {"type": "string"}}}}} Output JSON schema: {"type": "object", "required": ["customer"], "properties": {"customer": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreregister_customer
Examples it gives
  • {"action":"register_customer","name":"Ada Lovelace","email":"ada@example.com","billing":{"line1":"1 Analytical Engine","city":"London","postal_code":"W1","country":"GB"},"tax_id":null}
  • Register a customer named Ada Lovelace, email ada@example.com, billing 1 Analytical Engine, London, W1, GB.

Get customer

Look up a customer by customer_id or email. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "get_customer"}, "customer_id": {"type": "string"}, "email": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["customer"], "properties": {"customer": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreget_customer
Examples it gives
  • {"action":"get_customer","email":"ada@example.com"}
  • Look up the customer ada@example.com.

Create cart

Open a cart for a customer. The A2A contextId is stored when the caller omits context_id. Input JSON schema: {"type": "object", "required": ["action", "customer_id"], "properties": {"action": {"const": "create_cart"}, "customer_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstorecreate_cart
Examples it gives
  • {"action":"create_cart","customer_id":"CUSTOMER_ID"}
  • Create a cart for that customer.

Add to cart

Add a priced title. A title with a null list price is not for sale. cart_id may be omitted when the A2A contextId already has an open cart. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "add_to_cart"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}, "isbn13": {"type": "string"}, "rank": {"type": "integer"}, "quantity": {"type": "integer"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreadd_to_cart
Examples it gives
  • {"action":"add_to_cart","cart_id":"CART_ID","isbn13":"9781668236512","quantity":1}
  • Add one copy of Theo of Golden to the cart.

View cart

Return the open cart and line totals. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "view_cart"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreview_cart
Examples it gives
  • {"action":"view_cart","cart_id":"CART_ID"}
  • Show the cart.

Checkout

Turn the cart into an order awaiting sandbox payment. Tax is a simulated 8 percent of the merchandise subtotal. Shipping is a flat 5.00 USD. Neither figure comes from the bestseller list. Simulated stock is reserved. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "checkout"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order"], "properties": {"order": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstorecheckout
Examples it gives
  • {"action":"checkout","cart_id":"CART_ID"}
  • Check out the cart.

Pay (sandbox)

SANDBOX payment simulator, not a live charge. 4242424242424242 succeeds (Visa). 4000000000000002 declines. The full card number is never stored or returned; only brand and last4. Set STRIPE_SECRET_KEY to send the same call to Stripe test mode instead. A successful sandbox charge creates the invoice and attempts the confirmation email. Input JSON schema: {"type": "object", "required": ["action", "order_id", "card_number"], "properties": {"action": {"const": "pay"}, "order_id": {"type": "string"}, "card_number": {"type": "string"}, "exp_month": {"type": "integer"}, "exp_year": {"type": "integer"}, "cvc": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order", "payment"], "properties": {"order": {"type": "object"}, "payment": {"type": "object"}, "invoice": {"type": "object"}, "notification": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also

bookstorepay
Examples it gives
  • {"action":"pay","order_id":"ORDER_ID","card_number":"4242424242424242","exp_month":12,"exp_year":2034,"cvc":"123"}
  • Pay the order with the sandbox card 4242424242424242.

Generate invoice

Build a sequential UBL 2.1 / EN 16931-style XML invoice and a PDF for a paid order. The same invoice is returned if it already exists. Download URLs require an unguessable token. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "generate_invoice"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["invoice"], "properties": {"invoice": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoregenerate_invoice
Examples it gives
  • {"action":"generate_invoice","order_id":"ORDER_ID"}
  • Generate the invoice for the order.

Get order status

Return the order, payment (last4 and brand only), invoice links, and email status. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "get_order_status"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order"], "properties": {"order": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstoreget_order_status
Examples it gives
  • {"action":"get_order_status","order_id":"ORDER_ID"}
  • What is the status of the order?

Email order

Send the order confirmation and the invoice to the customer. If neither Resend nor SMTP is configured, the action still succeeds and the status is exactly "not_sent: email provider not configured". Pay already attempts this once. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "notify_order"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["notification"], "properties": {"notification": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.

bookstorenotify_order
Examples it gives
  • {"action":"notify_order","order_id":"ORDER_ID"}
  • Email the invoice to the customer.

Technical agent card

Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.

Provider
MABC80 β€” what this agent says about itself; other agents claiming the same provider are not thereby related
Protocol
a2a
Version
0.2.0
Extensions
https://agent.agiq.top/mcp
Bookstore tools over MCP streamable HTTP. Same service and action rate limit as DataPart calls.
A2A protocol extensions the card declares. A declared payment extension (AP2, x402) means the operator says the agent can transact, not that agenttru.st has seen it do so.
Card completeness
a2a.proto v1.0 requires eight top-level fields. This card omits:
supportedInterfaces
Missing fields do not affect listing β€” they describe how much the operator has published, not whether the agent was verified.
View all card details
Capabilities
extensions pushNotifications streaming
Agent card
https://www.agiq.top/.well-known/agent-card.json

Operate this agent and would rather not be listed? Request removal.