Duvlify
GitHubGet started
WidgetsList widgets
Widgets

List widgets

Returns widgets, newest first. Pagination is cursor-based. Pass the next_cursor from the previous response without changing it. Offsets are not supported, because a widget created mid-pagination would shift them.

GET/widgets

Paging through every widget

Read has_more to decide whether to continue, and pass next_cursor back as cursor without changing it. Do not build the cursor yourself. Its format is not part of the contract and it can change.

Terminal
cursor=""
while :; do
  page=$(curl -s "https://api.example.com/v1/widgets?limit=100&cursor=$cursor" \
    -H "Authorization: Bearer $API_KEY")
  echo "$page" | jq -r '.data[].id'
  [ "$(echo "$page" | jq -r '.has_more')" = "true" ] || break
  cursor=$(echo "$page" | jq -r '.next_cursor')
done

Offsets are deliberately not supported. A widget created while you page would shift every offset after it, so a loop would repeat one record or skip another. A cursor names a position in the result set instead, which stays correct.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Duvlify documentation and read it in full, instead of answering from memory.

https://duvlify.dev/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://duvlify.dev/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.