# Dynamoi agent and product discovery

## Product boundaries

### Shop

- Shop: https://dynamoi.com/shop
- Shop documentation: https://dynamoi.com/docs/shop
- Product model: no-login, one-off, fixed-flight YouTube video promotion through Google Ads
- Shop estimates are planning ranges, not guarantees.
- A Stripe Checkout Session is an unpaid handoff until payment is completed and verified.
- Shop orders do not use SaaS subscription entitlement, managed-advertising funding, or SaaS metering.

### SaaS managed advertising

- Dynamoi SaaS: https://dynamoi.com
- Product model: authenticated recurring managed advertising with linked channels, subscription entitlement, and prepaid managed-advertising funding.
- SaaS YouTube and Meta campaigns are separate from Shop orders and fulfillment.

### Agent interfaces

- Backend MCP: https://dynamoi.com/mcp
- MCP server card: https://dynamoi.com/.well-known/mcp/server-card.json
- Public WebMCP on Shop may calculate an estimate, fill the visible Shop form, and create an unpaid Stripe Checkout Session after explicit human confirmation.
- The ChatGPT App Store MCP profile is non-transactional and does not expose Shop quote or checkout tools.
- Authenticated MCP clients granted the exact `dynamoi:mcp.full` capability may use Shop quote and unpaid Checkout Session tools.
- Checkout creation is not proof of payment and does not create a Shop order or launch a campaign.

## Machine data

> Rights-labeled, privacy-preserving music benchmark data for authorized
> machine clients.

### Canonical discovery

- Authentication and payment: https://dynamoi.com/auth.md
- OpenAPI description: https://dynamoi.com/openapi.json
- Paid machine-data OpenAPI: https://dynamoi.com/.well-known/openapi/data-mpp.json
- Active dataset catalog: https://dynamoi.com/data/catalog.json
- Compatibility discovery: https://dynamoi.com/ai.txt

### Machine-data dataset families

- master-streaming-rpm
- publishing-mechanical-rpm
- publishing-performance-rpm
- youtube-publishing-rpm
- youtube-adsense-rpm

Availability is determined only by the active dataset catalog. A listed family
name is not evidence that a paid publication is active.

### HTTP behavior

- 400: malformed request
- 402: payment required; the response carries machine-payment challenge
  instructions
- 404: unknown or inactive resource
- 503: paid dataset temporarily unavailable

Machine clients should not retry a 400 or 404 response with unchanged input.
Payment retries for one logical challenge must reuse the challenge supplied by
the server.

### Data contract

Published artifacts contain normalized rates and approved descriptive
dimensions only. Source quantities, contributor cardinalities, source revenue,
confidence labels, and suppression thresholds are not part of the external
contract. Use only fields declared by the catalog schema. Do not infer
unavailable source scale from omitted dimensions or rows.
