GitDealFlow Deep Signal API

Paid per-request enriched signals

Operations 5

POST /api/agent/deep-signal Get deep enriched signal (paid, per-request) #
POST /api/agent/deep-signal/x402 Get deep enriched signal (x402, pay-per-call USDC on Base) #
GET /api/agent/deep-signal/solana Solana credit top-up, payment instructions #
POST /api/agent/deep-signal/solana Redeem a Solana USDC payment for deep-signal credits #
GET /api/account/credits Check credit balance for an API key #

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/gitdealflow-com-deep-signal-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

gitdealflow-com-deep-signal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VC Deal Flow Signal Deep Signal API
  version: 1.4.0
  description: Unified OpenAPI 3.1 + MCP descriptor for startup engineering-acceleration data.
  contact:
    email: signals@gitdealflow.com
  license:
    name: Free with attribution (CC BY 4.0)
    url: https://creativecommons.org/licenses/by/4.0/
  x-citation: 'VC Deal Flow Signal (signals.gitdealflow.com), Q3 2026 data. SSRN: 6606558.'
  x-revision-date: '2026-05-08'
  x-mcp-tool-count: 8
  x-rest-operation-count: 25
  x-rate-limit:
    default:
      requestsPerMinute: 60
      scope: ip
      burst: 120
      onExceeded:
        status: 429
        header: Retry-After
      notes: Per-IP default for free, read-only routes. Static .json/.jsonl/.txt surfaces are edge-cached and effectively unlimited. Operations that override the default carry their own `x-rate-limit` extension. Paid /api/agent/deep-signal* routes are scoped to credit-pack key, not IP.
    retryAfter:
      mechanism: header
      header: Retry-After
      unit: seconds
    documentation: https://signals.gitdealflow.com/api/v1/changelog.json
servers:
- url: https://signals.gitdealflow.com
tags:
- name: deep-signal
  description: Paid per-request enriched signals
paths:
  /api/agent/deep-signal:
    post:
      tags:
      - deep-signal
      operationId: getDeepSignal
      summary: Get deep enriched signal (paid, per-request)
      description: 'PAID per-request endpoint, €0.19/call, sold in 100-credit packs at €19. Returns enriched signal beyond /api/signal: composite score, sector percentile, plain-English thesis, comparables, multi-period history. 1 credit consumed only on a successful match; misses are FREE. Credits never expire. Buy at https://signals.gitdealflow.com/agents/credits, API key delivered by email after Stripe checkout.'
      x-mcp-tool:
        name: get_deep_signal
        description: '1:1 MCP analog (credit-pack-key flavour). The MCP server reuses the same handler. Pricing parity: €0.19/call. The x402 (USDC pay-per-call) flavour is documented under POST /api/agent/deep-signal/x402.'
        relation: exact
        paid: true
        unitPrice: EUR 0.19
        annotations:
          readOnlyHint: false
          idempotentHint: true
          openWorldHint: false
      security:
      - creditPackKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Startup display name or GitHub org slug.
              required:
              - name
      responses:
        '200':
          description: 'Deep signal payload (or { found: false } for an untracked startup, charged: 0).'
          headers:
            X-Credits-Balance:
              description: Remaining credit balance after this call.
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeepSignal'
        '401':
          description: Missing or invalid API key.
        '402':
          description: Insufficient credits.
  /api/agent/deep-signal/x402:
    post:
      tags:
      - deep-signal
      operationId: getDeepSignalX402
      summary: Get deep enriched signal (x402, pay-per-call USDC on Base)
      description: Same payload as /api/agent/deep-signal but priced and authenticated via the x402 protocol (HTTP 402 micropayments). $0.19 USDC per successful call on Base mainnet. No signup, no API key, agents pay per request via the X-PAYMENT header (EIP-3009 transferWithAuthorization). Misses (404) are not charged. Settled by the Coinbase x402 facilitator. See https://x402.org for client implementations.
      x-mcp-tool:
        name: get_deep_signal
        description: x402 variant, same MCP tool, no API key, USDC on Base. The MCP server picks the right pricing rail based on caller context.
        relation: exact
        paid: true
        unitPrice: USDC 0.19
        paymentProtocol: x402
        annotations:
          readOnlyHint: false
          idempotentHint: true
          openWorldHint: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Startup display name or GitHub org slug.
              required:
              - name
      responses:
        '200':
          description: Deep signal payload, settled. Response includes X-PAYMENT-RESPONSE header with transaction reference.
          headers:
            X-PAYMENT-RESPONSE:
              description: Base64-encoded JSON with on-chain settlement details (txHash, network, payer).
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeepSignal'
        '402':
          description: Payment Required. Response body lists supported payment requirements (network, asset, payTo, price). Agent signs an EIP-3009 authorization and retries with X-PAYMENT header.
        '404':
          description: Startup not in tracked universe, no settlement performed.
        '503':
          description: x402 endpoint not configured (X402_PAY_TO_ADDRESS env var missing).
  /api/agent/deep-signal/solana:
    get:
      tags:
      - deep-signal
      operationId: getDeepSignalSolanaTerms
      summary: Solana credit top-up, payment instructions
      description: Returns the Solana payment requirements (cluster, USDC mint, payTo, amount, credits granted) so an agent knows how to pay. No auth required for discovery.
      responses:
        '200':
          description: Payment requirements under an `accepts` array.
        '503':
          description: Solana endpoint not configured (SOLANA_RPC_URL / SOLANA_USDC_MINT / SOLANA_PAY_TO env vars missing).
    post:
      tags:
      - deep-signal
      operationId: redeemDeepSignalSolana
      summary: Redeem a Solana USDC payment for deep-signal credits
      description: 'Pay USDC (SPL) to the configured wallet on Solana, then POST the transaction signature with your credit-pack key to add credits to that account. The server verifies the on-chain transfer via Solana JSON-RPC (getTransaction) and grants the configured credit pack. Each signature can be redeemed once. Defaults: 19 USDC → 100 credits. Cluster defaults to devnet until a mainnet wallet is configured.'
      security:
      - creditPackKey: []
      x-mcp-tool:
        name: get_deep_signal
        description: Solana variant, top up the same credit balance with USDC on Solana, then call get_deep_signal as usual.
        relation: related
        paid: true
        unitPrice: USDC 19 / 100 credits
        paymentProtocol: solana-spl-transfer
        annotations:
          readOnlyHint: false
          idempotentHint: false
          openWorldHint: false
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                signature:
                  type: string
                  description: Base58 Solana transaction signature of the USDC transfer.
              required:
              - signature
      responses:
        '200':
          description: Payment verified; credits added. Returns new balance.
        '401':
          description: Missing or invalid credit-pack key.
        '402':
          description: Payment not yet found/confirmed, or amount below the required price.
        '409':
          description: Signature already redeemed.
        '422':
          description: Transaction failed on-chain or paid the wrong recipient.
        '503':
          description: Solana endpoint not configured.
  /api/account/credits:
    get:
      tags:
      - deep-signal
      operationId: getCredits
      summary: Check credit balance for an API key
      security:
      - creditPackKey: []
      responses:
        '200':
          description: Current credit state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  balance:
                    type: integer
                    minimum: 0
                  purchased:
                    type: integer
                    minimum: 0
                  consumed:
                    type: integer
                    minimum: 0
                  lastConsumedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                  purchaseUrl:
                    type: string
                    format: uri
        '401':
          description: Missing or invalid API key.
components:
  schemas:
    DeepSignal:
      type: object
      properties:
        found:
          type: boolean
        name:
          type: string
        sector:
          type: string
        stage:
          type: string
        geography:
          type: string
        signalType:
          type: string
        scores:
          type: object
          properties:
            velocity:
              type: integer
              minimum: 0
              maximum: 100
            growth:
              type: integer
              minimum: 0
              maximum: 100
            novelty:
              type: integer
              minimum: 0
              maximum: 100
            composite:
              type: integer
              minimum: 0
              maximum: 100
        rank:
          type: object
          properties:
            inSector:
              type: integer
            sectorTotal:
              type: integer
            sectorPercentile:
              type: integer
              minimum: 0
              maximum: 100
        thesis:
          type: string
        comparables:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              commitVelocityChange:
                type: string
              signalType:
                type: string
        balance:
          type: integer
          minimum: 0
        charged:
          type: integer
          minimum: 0
          maximum: 1
        citation:
          type: string
      required:
      - found
  securitySchemes:
    creditPackKey:
      type: http
      scheme: bearer
      bearerFormat: gdf_v2.<customerId>.<hmac>
      description: 'Per-request credit-pack API key delivered by email after Stripe checkout. Format: `gdf_v2.<stripe_customer_id>.<hmac16>`. Buy at https://signals.gitdealflow.com/agents/credits.'
x-mcp:
  rpcEndpoint: https://signals.gitdealflow.com/api/mcp/rpc
  manifestUrl: https://signals.gitdealflow.com/.well-known/mcp.json
  skillsManifest: https://signals.gitdealflow.com/.well-known/skills.json
  protocolVersion: '2025-06-18'
x-mcp-server:
  protocolVersion: '2025-06-18'
  server:
    name: vc-deal-flow-signal
    title: VC Deal Flow Signal
    version: 1.2.0
    instructions: Read-only signal data on startup engineering acceleration. All data CC BY 4.0, cite signals.gitdealflow.com when used in derivative work.
  transports:
  - type: streamable-http
    url: https://signals.gitdealflow.com/api/mcp/rpc
    authentication: none-for-free-tools; bearer gdf_v2 for get_deep_signal
  - type: stdio
    npm: '@gitdealflow/mcp-signal'
    command: npx -y @gitdealflow/mcp-signal
  directories:
  - name: Smithery
    url: https://smithery.ai/servers/kindrat86/mcp-deal-flow-signal
  - name: Glama
    url: https://glama.ai/mcp/servers/kindrat86/mcp-deal-flow-signal
  skillsManifest: https://signals.gitdealflow.com/.well-known/skills.json
  tools:
  - name: get_trending_startups
    description: Top 20 startups across all sectors for the current weekly period.
    httpAnalog:
      method: GET
      path: /api/signals.json
      projection: trending[]
    inputSchema:
      type: object
      properties: {}
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: search_startups_by_sector
    description: Startups within a single sector ranked by engineering acceleration.
    httpAnalog:
      method: GET
      path: /api/signals.json
      projection: sectors[?slug==input.sector_slug]
    inputSchema:
      type: object
      properties:
        sector_slug:
          type: string
          description: Sector slug (e.g. 'devtools', 'ai-infrastructure').
      required:
      - sector_slug
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: get_startup_signal
    description: Full profile for a single tracked startup by display name or GitHub org slug.
    httpAnalog:
      method: GET
      path: /api/signal
      argumentMapping:
        name: company
    inputSchema:
      type: object
      properties:
        name:
          type: string
          description: Startup display name or GitHub org slug.
      required:
      - name
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: get_signals_summary
    description: Period, sector and startup counts, last refresh, format URLs.
    httpAnalog:
      method: GET
      path: /api/signals.json
      projection: meta + format URLs
    inputSchema:
      type: object
      properties: {}
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: get_scout_receipts
    description: Scout Score (0-100) for a GitHub user, backwards-looking proof of taste.
    httpAnalog:
      method: GET
      path: /api/receipts/{username}
      argumentMapping:
        github_username: username
    inputSchema:
      type: object
      properties:
        github_username:
          type: string
          pattern: ^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$
          description: GitHub username, 1-39 chars, alphanumeric + single hyphens.
      required:
      - github_username
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: get_methodology
    description: Full reproducible signal-computation methodology (HowTo).
    httpAnalog:
      method: GET
      path: /api/v1/methodology.json
    inputSchema:
      type: object
      properties: {}
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  - name: get_deep_signal
    description: 'PAID, €0.19/call (or USDC 0.19 via x402). Returns enriched signal: composite score, sector percentile, plain-English thesis, comparables, multi-period history.'
    httpAnalog:
    - method: POST
      path: /api/agent/deep-signal
      auth: creditPackKey
      paid: true
      unitPrice: EUR 0.19
    - method: POST
      path: /api/agent/deep-signal/x402
      auth: x402
      paid: true
      unitPrice: USDC 0.19
    inputSchema:
      type: object
      properties:
        name:
          type: string
          description: Startup display name or GitHub org slug.
      required:
      - name
      additionalProperties: false
    annotations:
      readOnlyHint: false
      idempotentHint: true
      openWorldHint: false
    paid: true
  - name: share_result
    description: Compose a sharable post for X / Bluesky / Mastodon / LinkedIn / Telegram from a signal takeaway.
    httpAnalog: null
    requiresUserApproval: true
    inputSchema:
      type: object
      properties:
        text:
          type: string
          minLength: 10
          maxLength: 200
        network:
          type: string
          enum:
          - all
          - twitter
          - bluesky
          - mastodon
          - linkedin
          - telegram
          default: all
        includeAttribution:
          type: boolean
          default: true
      required:
      - text
      additionalProperties: false
    annotations:
      readOnlyHint: true
      idempotentHint: true
      openWorldHint: false
  resources:
  - uri: signal://trending
    name: Trending Startups (current week)
    description: Top 20 startups across all sectors for the current weekly period.
    mimeType: application/json
    httpAnalog: GET /api/signals.json
  - uri: signal://summary
    name: Dataset Summary
    description: Period, sector and startup counts, last refresh, format URLs.
    mimeType: application/json
    httpAnalog: GET /api/v1/signals.json (meta sub-object)
  - uri: signal://methodology
    name: Signal Methodology
    description: Full methodology document.
    mimeType: text/markdown
    httpAnalog: GET /api/v1/methodology.json
  resourceTemplates:
  - uriTemplate: signal://startup/{name}
    name: Startup Signal Profile
    description: Full profile for a single tracked startup.
    mimeType: application/json
    httpAnalog: GET /api/signal?company={name}
  - uriTemplate: signal://sector/{slug}
    name: Sector Signal Snapshot
    description: All tracked startups within a sector.
    mimeType: application/json
    httpAnalog: GET /api/signals.json (sectors[slug])
  prompts:
  - name: weekly_digest
    description: Monday-morning Signal Digest from the current top-20 trending startups.
    arguments: []
  - name: sector_deep_dive
    description: Sector intelligence brief, top movers, dark horses, thesis follow-ups.
    arguments:
    - name: sector
      description: Sector slug.
      required: true
  - name: find_dark_horse
    description: Surface one under-the-radar startup with sustained acceleration.
    arguments:
    - name: sector
      description: Optional sector slug.
      required: false
  - name: compare_startups
    description: Head-to-head investor comparison of two named startups.
    arguments:
    - name: name_a
      description: First startup.
      required: true
    - name: name_b
      description: Second startup.
      required: true
  - name: acceleration_memo
    description: One-page deal memo grounded in the live signal profile of a named startup.
    arguments:
    - name: name
      description: Startup display name or GitHub org slug.
      required: true
x-a2a:
  agentCardUrl: https://signals.gitdealflow.com/.well-known/agent-card.json
  jsonrpcEndpoint: https://signals.gitdealflow.com/api/a2a
  protocolVersion: 0.3.0
x-changelog:
- version: 1.3.0
  date: '2026-05-08'
  changes:
  - Added `info.x-rate-limit` default (60/min/IP, burst 120) so paid agents discover throttling without hitting 429.
  - Added per-operation `x-rate-limit` overrides on /api/signal (30/min/IP) and /api/receipts/{username} (10/min/IP).
  - Added `x-mcp.skillsManifest` and `x-mcp-server.skillsManifest` pointing to /.well-known/skills.json, Anthropic-style skills card enumerating the 5 MCP prompts as agent-callable skills with explicit invoke contracts.
  - Added 11 extension-stripped /api/v1/<resource> aliases (signals, faq, methodology, glossary, answers, openapi, agents, changelog, dataset, pricing, uptime) for agents that strip file extensions; canonical URLs remain at .json/.jsonl variants.
- version: 1.2.0
  date: '2026-05-07'
  changes:
  - Added x-mcp-tool extensions to 6 operations with MCP analogs (get_signals_summary, get_startup_signal, get_scout_receipts, get_methodology, get_deep_signal x2 variants).
  - Added top-level x-mcp-server with full tool/resource/prompt enumeration including HTTP analog mapping.
  - Documented 9 /api/v1/* versioned endpoints (signals, agents, answers, changelog, dataset, faq, methodology, glossary, openapi).
- version: 1.1.0
  date: '2026-04-22'
  changes:
  - Initial public spec.