<iframe>.
Quick Start
your-org with your organization’s slug or UUID (both work). The widget automatically shows every active market that belongs to your organization — and nothing else.
The organization identifier
The{org} segment in https://app.kash.bot/o/{org}/iframe accepts either form:
Your organization’s slug — friendly and human-readable, e.g.
acme.
Recommended for embeds you hand-write.Your organization’s UUID, e.g.
550e8400-e29b-41d4-a716-446655440000.
Matches the organizationId used by the REST API.GET /api/organizations/:id (the response includes id and slug).
Only your organization’s markets are ever returned — the organization is fixed by the URL, so another organization’s markets can never appear in your embed.
Iframe Attributes
Required Attributes
The organization iframe URL:
https://app.kash.bot/o/{org}/iframeRecommended Attributes
Iframe width - use
100% for responsive designIframe height in pixels. The grid scrolls internally, so taller is better for showing more markets without scrolling.
Border width (set to
0 for seamless embed)Use
eager for above-fold embeds, lazy for below-foldAccessibility: describe the iframe content for screen readers
Query Parameters
Source identifier for revenue tracking (e.g., your domain name). Recommended for proper attribution.
Complete Example
- Embeds every active market belonging to the
acmeorganization - Renders a branded grid with your organization’s logo and name
- Tracks source as
acme.comfor revenue sharing - Each card deep-links to Twitter so visitors can post & trade (no login required in the iframe)
Responsive Design
Wrap the iframe in a responsive container:Security Considerations
Sandbox Attribute
allow-scripts- Required for embed functionalityallow-same-origin- Allows API calls to Kash backendallow-popups- Enables opening Twitter to post & tradeallow-forms- Allows trading form submissions
Content Security Policy (CSP)
If your site uses CSP headers, add Kash to allowed sources:Performance Best Practices
Preconnect to Kash Domain
Common Issues
Widget shows no markets
Problem: Embed loads but the grid is empty Solutions:- Confirm your organization has active markets via
GET /api/organizations/:id/markets - Verify the slug or UUID in the URL is correct
- If you only have resolved markets, they won’t show by default — the widget shows active markets
”Organization not found”
Problem: The widget renders a not-found message Solutions:- Double-check the slug or UUID — a typo can’t be matched to an organization
- Fetch your organization to confirm its identifiers:
GET /api/organizations/:id
Next Steps
GET /api/organizations/:id/markets
Fetch your markets programmatically instead of embedding
Embedding Thread Iframes
Embed a single thread’s markets instead