Developers & Agents

Attendir Developer Documentation

Machine-readable resources, the embeddable share widget, the widget API, and self-serve onboarding — everything a developer or AI agent needs to work with Attendir.

Machine-Readable Resources

Every structured surface Attendir publishes, at a predictable URL:

  • /llms.txt — index of every page with descriptions, built for AI crawlers and agents
  • /llms-full.txt — expanded reference with inline pricing tables, FAQs, and an index of every article
  • /openapi.json — OpenAPI 3.1 specification for the public widget API
  • /sitemap.xml — every indexable URL with last-modified dates
  • /robots.txt — crawler policy (all major AI crawlers are welcome on public pages)
  • /blog/rss.xml — RSS feed of new articles
  • /.well-known/security.txt — security contact (RFC 9116)

Markdown Content Negotiation

Every public marketing and content page on attendir.com serves a text/markdown variant through standard HTTP content negotiation. Request any URL with an Accept header that prefers markdown and you get clean markdown instead of HTML — q-values are honored, both variants carry Vary: Accept, and unsupported types get a 406:

curl -H "Accept: text/markdown" https://attendir.com/pricing

If sending headers is inconvenient, append .md to any page URL instead — /pricing.md returns the same markdown, and the homepage is at /index.md. Every HTML page advertises its markdown URL twice: as <link rel="alternate" type="text/markdown"> in the head, and as an RFC 8288 Link: response header, so a HEAD request is enough to find it.

Blog posts and glossary terms are answered from their original Markdown sources. Nonexistent paths return a real HTTP 404 with a short markdown body linking back to this page, the sitemap, and llms.txt, so agents can recover instead of dead-ending.

Embeddable Share Widget

The Attendir widget renders a campaign's LinkedIn sharing flow on your own site — event page, registration confirmation, or sponsor page. It is a single script tag plus a container element; the script auto-discovers every [data-campaign] element on the page:

<div data-campaign="YOUR_CAMPAIGN_SHARE_LINK"></div>
<script src="https://attendir.com/widget/v1/attendir-widget.js" async></script>

Optional attributes: data-theme (light/dark), data-channels (comma-separated: linkedin, x, whatsapp, email, copy_link), data-cta (custom call-to-action text), data-email / data-name (pre-fill the attendee). A JavaScript API is also exposed as window.AttendirWidget with render(), destroy(), and destroyAll(). The embed snippet with your campaign's share link is in the Embed Widget section of the campaign page.

Widget API

The widget is built on a small public HTTP API under /api/widget/{share_link}/, documented in the OpenAPI 3.1 spec. The campaign's unguessable share-link UUID acts as a capability token — there are no separate API keys. All endpoints are stateless and CORS-enabled; all except email-html are rate-limited.

  • GET /api/widget/{share_link}/config — campaign, event, and widget configuration
  • POST /api/widget/{share_link}/impression — record a widget impression
  • POST /api/widget/{share_link}/advocate — create or retrieve an advocate record
  • POST /api/widget/{share_link}/share — record a share action on a channel
  • POST /api/widget/{share_link}/linkedin/share — publish a LinkedIn post (short-lived widget token from the OAuth popup)
  • GET /api/widget/{share_link}/email-html — static HTML block for embedding in emails

One scoping note: the widget's LinkedIn share flow validates the embedding page's origin against the campaign's allowed-domains list (secure by default), so on your own domain it works once your origin is registered for the campaign — email info@attendir.com to have it added. The other channels (X, WhatsApp, email, copy link) and everything else the widget does work on any site out of the box.

Authentication & Permissions

Attendir does not currently expose a general-purpose account API with OAuth 2.0 scoped tokens — the public surface is the widget API above, authorized per campaign by its share-link capability token. Inside the product, integrations authenticate with each provider's own mechanism: authorization-code OAuth 2.0 for Eventbrite, OAuth 2.0 client credentials for Bizzabo and Cvent, API keys for Luma, and LinkedIn OAuth for attendees.

Need programmatic access to your own events, campaigns, or analytics? Email info@attendir.com — a scoped, token-authenticated API is on the roadmap and real use cases move it up.

Self-Serve Onboarding

Attendir is fully self-serve — no sales calls, no demos, no "contact us" gate:

  • 1. Create an account with Google sign-in or email — takes under a minute
  • 2. Every account starts with a 7-day free trial — no credit card required
  • 3. Plans: Lite at $490/month and Unlimited at $1,190/month, billed monthly or yearly — see pricing
  • 4. Connect Eventbrite, Luma, Cvent, or Bizzabo — or create events manually — and launch a campaign in under 5 minutes

Let your attendees do your event marketing

No credit card required. Set up your LinkedIn sharing cards campaign in minutes.