agentdrives-com Follows API

Hear when a tool's level changes: follows and the webhook

Operations 4

GET /api/follows The tools you follow, your plan and its limit (free: 3 tools; Builder and Team… #
POST /api/follows Follow a tool by its slug: you hear by mail when its level changes (Builder and… #
DELETE /api/follows/{tool} Stop following a tool (MCP: unfollow_tool) #
PUT /api/follows/webhook Builder and Team: set (url) or clear (null) the webhook for level changes; the… #

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/agentdrives-com:agentdrives-com-follows-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

agentdrives-com-follows-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AgentDrives Follows API
  version: 5.20.1
  license:
    name: CC BY 4.0 for the listings and the facts
    url: https://agentdrives.com/data/licence
  x-changelog: https://agentdrives.com/data/api-changelog.json
  description: 'Getting started, the calls in order: https://agentdrives.com/getting-started. What changed, dated, with removed routes and retired products: https://agentdrives.com/data/api-changelog. Each key has an hourly limit (1,000 requests; an agent''s own unclaimed account''s key: 600), an hour from the key''s first call. Every answer to a keyed call carries RateLimit-Policy ("per-key";q=;w=3600) and RateLimit ("per-key";r=;t=). Over it, every call answers 429 rate_limited with Retry-After (seconds) and a body with limit, window_s, retry_after_s and resets_at: the key is fine, wait and retry. 401 means the key itself is unknown, revoked or expired. Everything a person can do on AgentDrives, an agent can do over HTTP, with no browser and no CAPTCHA. An agent with no address of its own signs up in one call (POST /api/agents/signup: an account and a key at once, and a claim link for its person; until a person claims it or it pays for an Audit, 1 free check a day and an Audit it pays over HTTP 402). Or sign in with an emailed 6-digit code, create an API key, claim your product''s domain, prove it is yours, order drives, cancel, and delete your account. Order of steps: claim (POST /api/claims; an account email on the domain verifies at once, unless the domain is a mailbox provider''s), verify (a code mailed to an address at the domain, a DNS TXT record, a meta tag on the home page or a file), then order. The free check needs no claim (product free: private, it lists nothing); a product whose claim is verified gets one queued. Every other order without a verified claim fails with 403 claim_not_verified and the fix. Only driven products are in the directory. Errors carry a `fix` field. API keys: 1,000 requests per hour each. When online payment is on, an order returns payment.url to pay at; otherwise payment is null and the order is confirmed by email. An Audit, a Tool comparison and a data plan also return payment.agent: pay it without a person over HTTP 402 at POST /api/orders/{id}/payment, with MPP or x402: a card through a Stripe Shared Payment Token, or USDC on Base or Tempo. Every payment has a receipt, and a business that sends its details gets our invoice.'
  contact:
    email: hello@agentdrives.com
  x-guidance: 'Find software an AI agent can use on its own: POST /api/paid/find-tools with {"task": "send an invoice"} answers with ranked products, each with its agent level (0 to 5), whether an agent gets in without a person, and what our agent got done in a real drive. $0.01 a call over x402 or MPP (USDC on Base or Tempo): the first request answers 402 with the challenges. For many calls, buy credit once: POST /api/credits/topup with {"amount_usd": 5} returns an API key that holds 500 calls; send it as x-api-key. The same search is free, rate-limited per IP, at GET /api/find-tools?task=…. To have a product of your own audited: POST /api/agents/signup for a key, claim and prove its domain (POST /api/claims), POST /api/orders with product audit, then pay $499 at POST /api/orders/{id}/payment. A data plan or a Tool comparison needs no domain: POST /api/orders with product builder ($49 a month) or stack3 ($490, with urls and use_case), then pay it the same way.'
servers:
- url: https://agentdrives.com
security:
- apiKey: []
- bearer: []
tags:
- name: Follows
  description: 'Hear when a tool''s level changes: follows and the webhook'
paths:
  /api/follows:
    get:
      operationId: listFollows
      summary: 'The tools you follow, your plan and its limit (free: 3 tools; Builder and Team…'
      responses:
        '200':
          description: Your follows
          content:
            application/json:
              schema:
                type: object
                properties:
                  plan:
                    enum:
                    - free
                    - builder
                    - team
                  limit:
                    type:
                    - integer
                    - 'null'
                  webhook_url:
                    type:
                    - string
                    - 'null'
                  follows:
                    type: array
                    items:
                      type: object
                      properties:
                        tool:
                          type: string
                        since:
                          type: string
                          format: date-time
              example:
                plan: free
                limit: 3
                webhook_url: https://linear.app
                follows:
                - tool: linear
                  since: '2026-10-20T08:00:00Z'
        '401':
          description: 'unauthorized: no key or session sent; invalid_or_limited_credentials: the key is unknown, revoked or expired, sent as Bearer (a key goes in x-api-key), or its account is blocked. The fix says which'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'rate_limited: the key is over its hourly limit (limit, window_s, retry_after_s, resets_at); the key is fine, wait and retry'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait
      tags:
      - Follows
      security:
      - apiKey: []
      - bearer: []
    post:
      operationId: followTool
      summary: 'Follow a tool by its slug: you hear by mail when its level changes (Builder and…'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tool:
                  type: string
                  description: The tool's slug, e.g. linear
              required:
              - tool
      responses:
        '201':
          description: Following
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  tool:
                    type: string
                  plan:
                    type: string
                  limit:
                    type:
                    - integer
                    - 'null'
                  following:
                    type: integer
                    description: How many you follow now
              example:
                ok: false
                tool: linear
                plan: free
                limit: 3
                following: 3
        '400':
          description: unknown_tool
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: 'unauthorized: no key or session sent; invalid_or_limited_credentials: the key is unknown, revoked or expired, sent as Bearer (a key goes in x-api-key), or its account is blocked. The fix says which'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: limit
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'rate_limited: the key is over its hourly limit (limit, window_s, retry_after_s, resets_at); the key is fine, wait and retry'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait
      tags:
      - Follows
      security:
      - apiKey: []
      - bearer: []
  /api/follows/{tool}:
    delete:
      operationId: unfollowTool
      summary: 'Stop following a tool (MCP: unfollow_tool)'
      parameters:
      - name: tool
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Stopped
        '401':
          description: 'unauthorized: no key or session sent; invalid_or_limited_credentials: the key is unknown, revoked or expired, sent as Bearer (a key goes in x-api-key), or its account is blocked. The fix says which'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'rate_limited: the key is over its hourly limit (limit, window_s, retry_after_s, resets_at); the key is fine, wait and retry'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait
      tags:
      - Follows
      security:
      - apiKey: []
      - bearer: []
  /api/follows/webhook:
    put:
      operationId: setFollowWebhook
      summary: 'Builder and Team: set (url) or clear (null) the webhook for level changes; the…'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type:
                  - string
                  - 'null'
                  format: uri
              required: []
      responses:
        '200':
          description: Set
        '400':
          description: invalid_url
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: 'unauthorized: no key or session sent; invalid_or_limited_credentials: the key is unknown, revoked or expired, sent as Bearer (a key goes in x-api-key), or its account is blocked. The fix says which'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: plan
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'rate_limited: the key is over its hourly limit (limit, window_s, retry_after_s, resets_at); the key is fine, wait and retry'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait
      tags:
      - Follows
      security:
      - apiKey: []
      - bearer: []
components:
  schemas:
    Error:
      type: object
      description: 'RFC 9457 problem details (application/problem+json) with two extension members: error, machine-readable, and fix, what to do next (the same text as detail). A body sent as JSON that isn''t JSON answers 400 invalid_json on every route'
      properties:
        type:
          type: string
          format: uri
          description: https://agentdrives.com/openapi.json#<error>
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        error:
          type: string
        fix:
          type: string
          description: 'What to do next: every error has one'
      required:
      - error
      - fix
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Each key has an hourly limit (1,000 requests; an agent''s own unclaimed account''s key: 600), an hour from the key''s first call. Every answer to a keyed call carries RateLimit-Policy ("per-key";q=<limit>;w=3600) and RateLimit ("per-key";r=<left>;t=<seconds until the hour ends>). Over it, every call answers 429 rate_limited with Retry-After (seconds) and a body with limit, window_s, retry_after_s and resets_at: the key is fine, wait and retry. 401 means the key itself is unknown, revoked or expired.'
    bearer:
      type: http
      scheme: bearer
x-service-info:
  categories:
  - developer-tools
  - data
  docs:
    homepage: https://agentdrives.com/data
    apiReference: https://agentdrives.com/openapi.json
    llms: https://agentdrives.com/llms.txt