Content Negotiation

How Bindly serves the same content as HTML or markdown via Accept headers and ?format=md, so humans and LLMs can both consume it.

Bindly supports content negotiation on all public pages. This means the same URL can return different formats depending on how you request it.

How It Works

Every public URL at bind.ly/@{space}/{binding} can return either HTML or Markdown.

Priority Order

  • ?format=md query parameter — Always returns markdown (highest priority)
  • Accept: text/markdown header — Returns markdown
  • Accept: text/plain header — Returns markdown
  • Default (text/html) — Returns styled HTML with OG tags and JSON-LD
  • Examples

    Get markdown content (for LLMs)

    GET https://bind.ly/@my-space/my-binding?format=md

    Or with headers:

    GET https://bind.ly/@my-space/my-binding
    

    Accept: text/markdown

    Get HTML content (for browsers)

    GET https://bind.ly/@my-space/my-binding

    Returns a styled HTML page with:

    • Open Graph meta tags (for social media previews)
    • JSON-LD structured data (for search engines)
    • Canonical URL
    • Full rendered content

    Temporary Share Links

    Share links (bind.ly/b/{shareId} and bind.ly/s/{shareId}) also support content negotiation with the same rules.

    Help Pages

    All /help/* pages support content negotiation too:

    GET https://bind.ly/help/mcp/tools?format=md

    This is useful for LLMs that want to read Bindly documentation in a structured format.

    For LLM Developers

    If you're building an integration that reads Bindly content:

    • Always use ?format=md for the most reliable markdown output
    • The Accept header approach works but ?format=md takes precedence
    • Public content requires no authentication
    • Rate limiting applies to all requests