LinkDR MCP Agent resources API

Managed-backlink skill, llms.txt index, and per-page markdown negotiation.

GitHub OpenAPI

Operations 3

GET /SKILL.md Fetch the managed-backlinks agent skill #
GET /llms.txt Fetch the llms.txt agent index #
GET /markdown/{path} Fetch a page as Markdown #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/linkdr:linkdr-agent-resources-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

linkdr-agent-resources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@linkdr.com
    name: LinkDR support
    url: https://linkdr.com/contact
  description: 'LinkDR is a managed backlink service: real publisher placements priced by Domain Rating (DR), ordered one-time or monthly, fulfilled in 3-4 weeks.


    Agents have three doors:


    1. Managed backlinks (no auth needed to plan): fetch https://linkdr.com/SKILL.md, plan the DR-tier mix from the budget, then send the user one https://linkdr.com/agent/checkout URL. The user logs in and pays in the browser; the user MCP can also charge a card already saved on the project, after the user confirms the quote.

    2. User MCP (any LinkDR account): https://linkdr.com/mcp over Streamable HTTP with OAuth 2.1. Your own projects, orders, outreach progress, live links, and AI answers, plus cache-first keyword SERPs and domain metrics. It can also add a site and its keywords, answer site approvals, quote and order links (a saved card is charged only after the user confirms; otherwise it returns the checkout link), and send feedback. Docs: https://linkdr.com/docs/mcp.

    3. Admin MCP (LinkDR admins only): https://linkdr.com/mcp/admin. The operator''s tools: every order and project, publisher outreach, customer emails, guest posts, and research with contacts. Other accounts complete OAuth and receive 403. Docs: https://linkdr.com/docs/admin.


    Machine-readable resources: this spec (https://linkdr.com/openapi.json), agent instructions (https://linkdr.com/llms.txt), the checkout skill (https://linkdr.com/SKILL.md), and docs (https://linkdr.com/docs).'
  termsOfService: https://linkdr.com/terms
  title: LinkDR Agent resources API
  version: 1.0.0
servers:
- description: Production
  url: https://linkdr.com
tags:
- description: Managed-backlink skill, llms.txt index, and per-page markdown negotiation.
  name: Agent resources
paths:
  /SKILL.md:
    get:
      description: 'The LinkDR link-building agent skill (Agent Skills format). Fetch before quoting prices or building checkout URLs. Served as text/markdown by default; send Accept: text/plain for plain text. Complete only if the last line reads END SKILL v.'
      operationId: getAgentSkill
      responses:
        '200':
          content:
            text/markdown:
              schema:
                type: string
            text/plain:
              schema:
                type: string
          description: Skill file
        '406':
          description: Accept header matches neither text/markdown nor text/plain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      summary: Fetch the managed-backlinks agent skill
      tags:
      - Agent resources
  /llms.txt:
    get:
      description: 'Site map and guidance for AI agents: when to use LinkDR, both integration doors, developer resources, and an index of pages worth fetching.'
      operationId: getLlmsTxt
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: llms.txt content
      summary: Fetch the llms.txt agent index
      tags:
      - Agent resources
  /markdown/{path}:
    get:
      description: Markdown rendering of any public marketing, checkout, or admin docs page (for example /markdown/pricing, /markdown/docs/get-started, or /markdown/docs/admin). Unknown paths return HTTP 404 with recovery links in the body.
      operationId: getPageMarkdown
      parameters:
      - description: Page path without the leading slash, e.g. pricing or docs/get-started.
        in: path
        name: path
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/markdown:
              schema:
                type: string
          description: Markdown representation of the page
        '404':
          content:
            text/markdown:
              schema:
                type: string
          description: No markdown for this path; body lists recovery links
      summary: Fetch a page as Markdown
      tags:
      - Agent resources
components:
  schemas:
    Error:
      description: Structured error returned by all /api and /rpc failures. Agents should read code and hint.
      properties:
        error:
          properties:
            code:
              description: Stable machine-readable code.
              enum:
              - BAD_REQUEST
              - NOT_FOUND
              - METHOD_NOT_ALLOWED
              - UNAUTHORIZED
              - FORBIDDEN
              - RATE_LIMIT_EXCEEDED
              - INTERNAL_ERROR
              type: string
            hint:
              description: Resolution hint for the caller.
              type: string
            message:
              description: Human-readable summary.
              type: string
            status:
              description: HTTP status repeated in the body.
              type: integer
          required:
          - code
          - message
          - status
          type: object
      type: object
  securitySchemes:
    McpOAuth:
      description: 'OAuth 2.1 authorization-code flow with PKCE (required) for both MCP servers. Authorization server metadata: https://linkdr.com/.well-known/oauth-authorization-server. Dynamic client registration is accepted. Each server is its own protected resource (https://linkdr.com/mcp and https://linkdr.com/mcp/admin), so a token is audience-bound to one of them. The admin server also requires the admin role on the LinkDR account.'
      flows:
        authorizationCode:
          authorizationUrl: /api/auth/oauth2/authorize
          refreshUrl: /api/auth/oauth2/token
          scopes:
            email: Identify the account by email address during sign-in
            offline_access: Receive a refresh token so long-running agent sessions stay connected until revoked
            openid: Sign in with a LinkDR account
            profile: Read the account display name
          tokenUrl: /api/auth/oauth2/token
      type: oauth2
    SessionCookie:
      description: Dashboard session cookie (better-auth.session_token) issued by browser sign-in. Endpoints under this scheme serve the logged-in app and its rate limits; there is no header-token alternative yet.
      in: cookie
      name: better-auth.session_token
      type: apiKey