Buyers propose prices on the marketplace. The stored floor price is the agent’s only basis for negotiation. If there is no floor price for an item, it does not decide on a price offer but hands it over to a human. These handed-over offers are the work queue — and they lapse if nobody looks at them.
The inbox offer list shows price offers with the decision the agent made — or without a decision if it handed the offer over. Where it decided, decisionPriceCents gives the price where available. The needs_human filter narrows it to what a human has to decide.
| Surface | Roles |
|---|---|
| Sales agent | Parts trading, Vehicle trading |
What this case requires
- A marketplace channel with consent granted. Without it no price offers reach the agent.
- Stored floor prices. They are the agent’s only basis for negotiation; without them it does not decide.
- Someone who checks the filter regularly. An offer carries an expiry date.
- A line on counter-offers. How far a colleague goes below the floor price is a commercial decision, not a technical one.
The sequence
The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.
| Stage | Call | What exists afterwards |
|---|---|---|
| Look up the floor prices | GET /agent/items/prices | minPriceCents per itemKey with updatedAt |
| Filter the open offers | GET /agent/inbox/offers | status needs_human shows the offers a human has to decide |
| Read the conversation | GET /agent/inbox/conversations/{conversationId} | History with actions, findings and suggestedReply |
| Reply | POST /agent/inbox/conversations/{conversationId}/reply | deliveryStatus; the call requires the conversation to have been taken over first |
| Mark as read | POST /agent/inbox/conversations/{conversationId}/read | unreadCount drops, the work queue stays honest |
Why each stage is needed
- Look up the floor prices.
GET /agent/items/priceslistsminPriceCentsperitemKeywithupdatedAt. Before a colleague judges an offer, they see the basis on which the agent would have decided — and whether that basis is still current. - Filter the open offers.
GET /agent/inbox/offersknowsstatuswithpending,decidedandneeds_human. Each offer carriesitemPriceCents,offerPriceCents,expiresAt,decisionwithaccept,decline,counter,recordorhandoff, and where applicabledecisionPriceCents. - Read the conversation.
GET /agent/inbox/conversations/{conversationId}shows the history withactions,findingsandsuggestedReply. That way the colleague sees the history before replying. - Reply.
POST /agent/inbox/conversations/{conversationId}/replyrequires the conversation to have been taken over first withPOST /agent/inbox/conversations/{conversationId}/takeover, and returnsdeliveryStatus. On a mailbox or marketplace channel the reply is queued for delivery; on the website it counts as delivered at once. - Mark as read.
POST /agent/inbox/conversations/{conversationId}/readresetsunreadCount. That sounds minor but keeps the work queue honest: what is read and answered disappears from the view of those looking for open items.
curl -H 'X-Api-Key: <API_KEY>' \ 'https://api.tapinomahub.com/hub/index.php/agent/inbox/offers?status=needs_human&limit=25'
What you end up with
In the end every price offer has a decision — from the agent where the floor price supports it, and from a colleague where it does not. No offer lapses because it sat in the wrong list.
Where to find this in the documentation
The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-agent). All use cases arranged by surface and role: overview of the use cases.
Sources and legal references
Frequently asked
Why did the agent not decide an offer itself?
The contract explicitly names one case: without a floor price for an item it does not decide on a price offer but hands it over to a human. The related conversation shows the history.
Can I see at which price the agent decided?
Yes. decisionPriceCents names the price of the decision, decidedAt the time.
What does record mean as a decision?
record is one of the values of decision, alongside accept, decline, counter and handoff. The contract does not describe this value further.
