Documentation Search API

Last verified 11 Nov 2026

The Documentation Search API returns ranked DigitalOcean documentation pages for a keyword query as JSON. It uses the same index and ranking as the docs-search tool on the Documentation MCP server, so both return the same pages. Use it from scripts, IDE plugins, and retrieval pipelines that don’t use MCP. It requires no API token or account.

Note

The Documentation Search API is in public preview and available to everyone without opting in. The response format and rate limits may change during the preview. Responses include "stability": "preview" in meta.

Endpoint

Send a GET request to the following endpoint:

https://docs.mcp.digitalocean.com/v1/search
Parameter Required Description
q Yes Search keywords, up to 256 bytes.
limit No Number of results to return, from 1 to 50. Defaults to 10.
product No Restricts results to one product or area, such as droplets, app platform, vpc, support, or api.

The endpoint rejects unknown or repeated parameters with a 400 error.

Example

The following request searches for pages about deploying container images and returns the top two results:

curl 'https://docs.mcp.digitalocean.com/v1/search?q=deploy+from+container+image&limit=2'

The response lists the matching pages in results and describes the search in meta:

{
  "results": [
    {
      "title": "How to Deploy from Container Images",
      "url": "https://docs.digitalocean.com/products/app-platform/how-to/deploy-from-container-images/",
      "markdown_url": "https://docs.digitalocean.com/products/app-platform/how-to/deploy-from-container-images/index.html.md",
      "product": "App Platform",
      "page_type": "how-to",
      "last_modified": "2026-07-13",
      "excerpt": "You can deploy containerized apps to App Platform from supported container registries..."
    },
    {
      "title": "How to Use Container Images for Paperspace Deployments",
      "url": "https://docs.digitalocean.com/products/paperspace/deployments/how-to/use-images/",
      "markdown_url": "https://docs.digitalocean.com/products/paperspace/deployments/how-to/use-images/index.html.md",
      "product": "Paperspace",
      "page_type": "how-to",
      "last_modified": "2023-12-14",
      "excerpt": "Container images are required to run a Paperspace App..."
    }
  ],
  "meta": {
    "query": "deploy from container image",
    "total": 2,
    "pages_searched": 6587,
    "stability": "preview"
  }
}

To read a full page, fetch its markdown_url.

Response Fields

Each object in results has the following fields. Fields without a value are omitted.

Field Description
title Page title.
url Canonical URL of the page.
markdown_url Markdown version of the page.
product Product or area the page belongs to.
page_type Kind of page, such as how-to, reference, support, or getting-started.
last_modified Date the page was last updated, in YYYY-MM-DD format.
excerpt Passage from the page body that matches the query, or the page description when no passage matches.

The meta object contains query, product (when you set it), total (the number of results returned), pages_searched, and stability.

Ranking uses page titles, descriptions, products, and URLs. Page body text is used for excerpts but not for ranking, so a query for a term that only appears in a page body, such as an exact error string, may not find that page.

Errors

Errors return a JSON body with an id and a message:

Status id Cause
400 bad_request A missing, invalid, unknown, or repeated parameter.
405 method_not_allowed A method other than GET.
429 too_many_requests The rate limit for your IP address was exceeded.
503 service_unavailable The documentation index is temporarily unavailable. Retry later.

Rate Limits

Requests are rate limited per client IP address. When you exceed the limit, the response has status 429 and a Retry-After header with the number of seconds to wait. Successful responses are cached for up to five minutes, so repeating the same query does not return newer results within that window.

To process the whole documentation set, such as to build your own search index, don’t page through search results. Use the bulk feeds instead:

  • llms-index.json lists every page with its title, description, product, URL, and last-modified date.
  • docs-corpus.jsonl contains page content in chunks, split into shards that you can fetch and update individually.
  • Every page has a Markdown version at its URL with index.html.md appended.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.