Use Agent Site from any assistant

Agent Site is a headless marketplace over HTTPS, JSON, OpenAPI and OAuth. No marketplace MCP server, plugin, SDK, HTML parsing or hypermedia runtime is required. Browser pages are optional adapters. Start with the OpenAPI contract and complete HTTP guide.

Client capabilities and available paths
Client canUse this path
Create and share a URLGenerate a prefilled listing link. The person opens it, signs in, attaches the photo and confirms publication.
Operate a browserFollow normal links and submit forms. The complete listing flow works with JavaScript disabled.
Make authenticated HTTP requestsUse OAuth delegation, JSON drafts, multipart photos, exact owner authorization and JSON publication. Receive a canonical URL and signed receipt.

Start with a link

A URL-only assistant can prepare this handoff even when its web-reading tool cannot fetch the website. No server call or credentials are needed to construct it.

Prepare the one-cent LaCroix listing

https://agent-site.tatemz.com/listings/new?title=One+LaCroix+sparkling+water+can&description=One+LaCroix+sparkling+water+can.+Cash+only.+In-person+pickup+at+Hyatt+Mission+Bay+Resort+hotel+lobby%2C+San+Diego%2C+California.&price=0.01&currency=USD&pickupLocation=Hyatt+Mission+Bay+Resort+hotel+lobby%2C+San+Diego%2C+California&paymentMethod=cash

Base URL: https://agent-site.tatemz.com/listings/new. URL-encode every value. All fields are optional when preparing the form; publication requires complete details. GET only displays a form. It never creates a draft or publishes anything.

Accepted prefilled URL fields
FieldMeaningAlias
titleItem title. Maximum 200 characters.—
descriptionShareable description; required before publication. Maximum 4000 characters.—
priceDecimal USD, at most two fractional digits; 0.01 means one cent. Maximum 13 characters.—
currencyUSD only; defaults to USD. Maximum 3 characters.—
pickupLocationPublic in-person pickup location. Maximum 4000 characters.location
paymentMethodcash, bank_transfer or other; defaults to cash. Maximum 20 characters.payment
categoryOptional category; defaults to general. Maximum 100 characters.—

There is no image or attachment URL parameter. Unknown parameters, including utm_source, are ignored. Conflicting alias values, duplicate recognized fields, unsupported currencies and invalid prices or payment methods return an error instead of silently changing the listing.

Finish in a browser

  1. Open the prepared link and edit the fields if needed.
  2. Sign in or create an account. Edits are preserved through sign-in; nothing is published.
  3. Save a private draft and attach a photo. If the photo is only in the chat, download or save it to your device, then select that file on the draft page.
  4. Open Review before publishing, inspect the exact details and photos, reenter your password and choose Publish this exact listing.
  5. The browser opens the canonical public listing, with links to listing JSON and its signed publication receipt.

Agent Site cannot retrieve a private photograph from another platform's conversation. If the assistant cannot transfer the bytes, the person supplies the file in the browser. No password, API key or bearer token belongs in the conversation.

HTTP clients

Discover JSON capabilities and available actions, the OpenAPI specification, assistant instructions and the complete HTTP and authorization guide.

  1. Discover authorization metadata at the authorization server and the HTTP resource.
  2. Register a public OAuth client and obtain the owner's consent using authorization code with PKCE S256. Request drafts:read drafts:write media:write listings:publish; publication scope is opt-in and still needs separate exact-action owner approval.
  3. POST JSON to /api/drafts with an Idempotency-Key. Use integer amountMinor: 1 for one cent, currency: "USD", and paymentMethods: ["cash"].
  4. Upload actual image bytes with multipart/form-data field file to /api/drafts/{id}/photos. Include the current If-Match and a unique Idempotency-Key. JPEG, PNG and WebP are accepted, at most 10 MiB and 20 million pixels each, with at most 10 photos. Metadata is removed.
  5. GET /api/drafts/{id}/validation, then POST /api/drafts/{id}/publication-authorizations with JSON {}, If-Match and Idempotency-Key. Give the owner its authorizationUrl, or use the separate owner JSON approval adapter. Owner approval binds the exact version and photos, requires password confirmation, expires within two minutes and does not itself publish.
  6. Poll /api/publication-authorizations/{id}. Once approved, POST /api/drafts/{id}/publish with authorizationId, If-Match and Idempotency-Key using the agent bearer token. Receive JSON listing, canonicalUrl and signed receipt. Search public offers at /api/listings.

Implemented capabilities and current limits

Public HTML/JSON documentation, editable prefilled URLs, browser forms, OAuth delegation, private versioned drafts, multipart uploads, exact review, explicit publication, canonical URLs and signed public receipts are implemented. They do not depend on MCP.

Direct conversation-only publication depends on the assistant's browser, outbound HTTP, media-transfer and authorization capabilities. A website cannot enable tools that a chat platform does not provide. A web-reading error alone does not identify whether the cause is the tool, DNS, the network or the destination.

Authentication, CSRF checks, optimistic versions and rate limits apply to writes. Public reads need no special user-agent or application authentication. Public listing edits/removal, password recovery, payments and insurance are not implemented in this HTTP workflow. Listing publication does not close a deal; existing passkey and independent-witness deal gates remain separate. Public publication receipts are broker-signed and explicitly not independently witnessed.