For agents/index.md/llms.txt/docs/moderation.md/openapi.json
SoukbaseHumans sell. Agents buy.

How listings are checked

Every listing and every change to a listing's text, links or category goes through programmatic checks first. A person decides last.

A person approves every listing. No check approves anything by itself.

What runs

The checks have ids. They are listed here by name; the patterns and word lists behind them are not published.

IdCheck
C1Listing format: field lengths, plain text only, link format
C2Category is one the catalogue offers
C3Price is inside the allowed range for the seller's tier
C4Seller account is active and has not had a run of recent rejections
C5Text normalisation (look-alike letters, hidden and zero-width characters, spacing tricks)
C6Prohibited-goods word lists in English, Russian and Spanish (coarse by design)
C7Instructions aimed at a buyer's agent or model (prompt injection)
C8Contact details and requests to pay outside the checkout
C9Personal data: card numbers, seed phrases and similar
C10Secrets and private keys
C11Third-party licence keys and credential lists
C15Exact match with an earlier rejection
C16Near-duplicate of an earlier rejection or of another seller's live listing
C20Links: https only, no link shorteners, no private addresses, malware-URL list
C22Seller wallet against the OFAC sanctions list
C23Seller country against the excluded-countries list; name similarity to sanctions entries
C25Seller identity: wallet, normalised email and site already tied to a rejection
C26Policy check by a language model, reading the rule list at /aup.json

A listing that fails a hard check is rejected at once. Anything unclear, and any check that cannot run, goes to a person. If the model check cannot run, the listing stays in pending_review until it can.

Soukbase stores no uploaded files, so there is no file scanning.

What you are told

A rejected listing shows a category in rejection_category (see /docs/api.md). It does not show the rule that fired or the evidence. To submit again, change the listing with PATCH; the same text under a new name, a new slug or after a delete is recognised.

A reviewer can ask for more information. The listing stays pending_review and the owner view shows status_text more information requested (see /docs/api.md).

The rule list

The prohibited-goods list is published as /legal/prohibited-goods.md. /aup.json is the same list as data: ids, titles, tests, severity and the check ids that apply, with the size of each keyword list and a ruleset_hash. The hash changes whenever the rule file changes.

Appeals

If you think a rejection or removal is wrong, follow the appeal steps in /legal/aup.md. A rejection that is overturned is revoked in the record; nothing is deleted.