tender-agents-com Tenders API

The tenders API from tender-agents-com — 10 operation(s) for tenders.

Operations 10

GET /api/v1/health Health #
GET /api/v1/source-status Source Status #
GET /api/v1/cpv Cpv List #
GET /api/v1/public/countries Public Countries #
POST /api/v1/public/tenders/document-watches Watch Public Tender Documents #
GET /api/v1/public/tenders Public Tenders #
GET /api/v1/tenders List Tenders #
GET /api/v1/tenders/search Fts Search #
GET /api/v1/tenders/{tender_id} Get Tender By Id #
GET /api/v1/stats Stats #

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/tender-agents-com:tender-agents-com-tenders-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

tender-agents-com-tenders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tender Agents Com Tenders API
  version: 0.1.0
  description: 'Operations tagged tenders across 2 of this provider''s published API definitions: api.tender-agents.com_openapi.json, tender-agents-com-agentleads-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: tenders
paths:
  /api/v1/health:
    get:
      tags:
      - tenders
      summary: Health
      operationId: health_api_v1_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthOut'
  /api/v1/source-status:
    get:
      tags:
      - tenders
      summary: Source Status
      operationId: source_status_api_v1_source_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/SourceStatusOut'
                type: array
                title: Response Source Status Api V1 Source Status Get
  /api/v1/cpv:
    get:
      tags:
      - tenders
      summary: Cpv List
      operationId: cpv_list_api_v1_cpv_get
      parameters:
      - name: vertical
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Vertical
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CPVEntry'
                title: Response Cpv List Api V1 Cpv Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/public/countries:
    get:
      tags:
      - tenders
      summary: Public Countries
      description: Öffentliche Länderliste des Index mit Tender-Zahl (für Statusseiten/Facetten).
      operationId: public_countries_api_v1_public_countries_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  additionalProperties:
                    anyOf:
                    - type: integer
                    - type: string
                  type: object
                type: array
                title: Response Public Countries Api V1 Public Countries Get
  /api/v1/public/tenders/document-watches:
    post:
      tags:
      - tenders
      summary: Watch Public Tender Documents
      description: Queue supported saved-search notices for bounded background refresh.
      operationId: watch_public_tender_documents_api_v1_public_tenders_document_watches_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicDocumentWatchRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties:
                  anyOf:
                  - items:
                      type: string
                    type: array
                  - type: boolean
                type: object
                title: Response Watch Public Tender Documents Api V1 Public Tenders Document Watches Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/public/tenders:
    get:
      tags:
      - tenders
      summary: Public Tenders
      description: 'Small public search surface for landing pages and SEO previews.


        The authenticated API remains the paid product surface for broad exports,

        full text search, higher limits, document analysis, and agent workflows.'
      operationId: public_tenders_api_v1_public_tenders_get
      parameters:
      - name: country
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          default: DEU
          title: Country
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
      - name: cpv
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: comma-separated CPV codes
          title: Cpv
        description: comma-separated CPV codes
      - name: vertical
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Vertical
      - name: performance_region
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Performance Region
      - name: minimum_value_eur
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
          - type: 'null'
          title: Minimum Value Eur
      - name: maximum_value_eur
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
          - type: 'null'
          title: Maximum Value Eur
      - name: deadline_within_days
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 365
            minimum: 1
          - type: 'null'
          title: Deadline Within Days
      - name: only_active
        in: query
        required: false
        schema:
          type: boolean
          description: deadline in future or unknown
          default: true
          title: Only Active
        description: deadline in future or unknown
      - name: min_score
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          default: 0
          title: Min Score
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          default: 10
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 1000
          - type: 'null'
          description: Up to 25 saved tender UUIDs, comma-separated; includes closed notices and bypasses search filters for change checks
          title: Ids
        description: Up to 25 saved tender UUIDs, comma-separated; includes closed notices and bypasses search filters for change checks
      - name: summary_lang
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 2
            maxLength: 2
          - type: 'null'
          description: ISO 639-1 code for cached AI summaries (e.g. 'en'); silently ignored if the feature or language is unavailable
          title: Summary Lang
        description: ISO 639-1 code for cached AI summaries (e.g. 'en'); silently ignored if the feature or language is unavailable
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicTenderOut'
                title: Response Public Tenders Api V1 Public Tenders Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/tenders:
    get:
      tags:
      - tenders
      summary: List Tenders
      operationId: list_tenders_api_v1_tenders_get
      parameters:
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Source
      - name: country
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
      - name: cpv
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: comma-separated CPV codes
          title: Cpv
        description: comma-separated CPV codes
      - name: vertical
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Vertical
      - name: performance_region
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Performance Region
      - name: minimum_value_eur
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
          - type: 'null'
          title: Minimum Value Eur
      - name: maximum_value_eur
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
          - type: 'null'
          title: Maximum Value Eur
      - name: deadline_within_days
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            maximum: 365
            minimum: 1
          - type: 'null'
          title: Deadline Within Days
      - name: only_active
        in: query
        required: false
        schema:
          type: boolean
          description: deadline in future or unknown
          default: true
          title: Only Active
        description: deadline in future or unknown
      - name: min_score
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          default: 0
          title: Min Score
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TenderOut'
                title: Response List Tenders Api V1 Tenders Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyBearer: []
      - oauth2ClientCredentials:
        - tenders:read
  /api/v1/tenders/search:
    get:
      tags:
      - tenders
      summary: Fts Search
      operationId: fts_search_api_v1_tenders_search_get
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          minLength: 1
          title: Q
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 25
          title: Limit
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TenderOut'
                title: Response Fts Search Api V1 Tenders Search Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyBearer: []
      - oauth2ClientCredentials:
        - tenders:read
  /api/v1/tenders/{tender_id}:
    get:
      tags:
      - tenders
      summary: Get Tender By Id
      operationId: get_tender_by_id_api_v1_tenders__tender_id__get
      parameters:
      - name: tender_id
        in: path
        required: true
        schema:
          type: string
          title: Tender Id
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TenderOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyBearer: []
      - oauth2ClientCredentials:
        - tenders:read
  /api/v1/stats:
    get:
      tags:
      - tenders
      summary: Stats
      operationId: stats_api_v1_stats_get
      parameters:
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatsOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyBearer: []
      - oauth2ClientCredentials:
        - tenders:read
components:
  schemas:
    PublicDocumentWatchRequest:
      properties:
        ids:
          items:
            type: string
            format: uuid
          type: array
          maxItems: 25
          minItems: 1
          title: Ids
      type: object
      required:
      - ids
      title: PublicDocumentWatchRequest
    CPVEntry:
      properties:
        code:
          type: string
          title: Code
        label:
          type: string
          title: Label
        vertical:
          anyOf:
          - type: string
          - type: 'null'
          title: Vertical
      type: object
      required:
      - code
      - label
      title: CPVEntry
    StatsOut:
      properties:
        total:
          type: integer
          title: Total
        by_source:
          additionalProperties:
            type: integer
          type: object
          title: By Source
        by_country:
          additionalProperties:
            type: integer
          type: object
          title: By Country
        last_7_days:
          type: integer
          title: Last 7 Days
      type: object
      required:
      - total
      - by_source
      - by_country
      - last_7_days
      title: StatsOut
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    PublicTenderOut:
      properties:
        id:
          type: string
          title: Id
        source:
          type: string
          title: Source
        source_url:
          type: string
          title: Source Url
        title:
          type: string
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        buyer_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Buyer Name
        buyer_country:
          type: string
          title: Buyer Country
        buyer_nuts:
          anyOf:
          - type: string
          - type: 'null'
          title: Buyer Nuts
        performance_location:
          anyOf:
          - type: string
          - type: 'null'
          title: Performance Location
        performance_nuts:
          items:
            type: string
          type: array
          title: Performance Nuts
        cpv_main:
          anyOf:
          - type: string
          - type: 'null'
          title: Cpv Main
        cpv_additional:
          items:
            type: string
          type: array
          title: Cpv Additional
        published_at:
          type: string
          format: date-time
          title: Published At
        deadline_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Deadline At
        deadline_details:
          items:
            additionalProperties:
              type: string
            type: object
          type: array
          title: Deadline Details
        requirements:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Requirements
        document_revision:
          anyOf:
          - type: string
          - type: 'null'
          title: Document Revision
        document_count:
          type: integer
          title: Document Count
          default: 0
        estimated_value_eur:
          anyOf:
          - type: string
          - type: 'null'
          title: Estimated Value Eur
        languages:
          items:
            type: string
          type: array
          title: Languages
        lot_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Lot Count
        award_criteria:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Award Criteria
        framework_agreement:
          anyOf:
          - type: string
          - type: 'null'
          title: Framework Agreement
        gpa_covered:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Gpa Covered
        verticals:
          items:
            type: string
          type: array
          title: Verticals
        relevance_score:
          type: integer
          title: Relevance Score
        summary:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Summary
      type: object
      required:
      - id
      - source
      - source_url
      - title
      - buyer_country
      - published_at
      - relevance_score
      title: PublicTenderOut
    SourceStatusOut:
      properties:
        source:
          type: string
          title: Source
        implementation_status:
          type: string
          enum:
          - live
          - stub
          title: Implementation Status
        interface:
          type: string
          enum:
          - official_api
          - portal
          title: Interface
          default: portal
        last_attempt_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Attempt At
        last_success_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Success At
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
        fetched:
          type: integer
          title: Fetched
          default: 0
        stored:
          type: integer
          title: Stored
          default: 0
      type: object
      required:
      - source
      - implementation_status
      title: SourceStatusOut
    TenderOut:
      properties:
        id:
          type: string
          title: Id
        source:
          type: string
          title: Source
        source_id:
          type: string
          title: Source Id
        source_url:
          type: string
          title: Source Url
        title:
          type: string
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        buyer_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Buyer Name
        buyer_country:
          type: string
          title: Buyer Country
        buyer_nuts:
          anyOf:
          - type: string
          - type: 'null'
          title: Buyer Nuts
        performance_location:
          anyOf:
          - type: string
          - type: 'null'
          title: Performance Location
        performance_nuts:
          items:
            type: string
          type: array
          title: Performance Nuts
        cpv_main:
          anyOf:
          - type: string
          - type: 'null'
          title: Cpv Main
        cpv_additional:
          items:
            type: string
          type: array
          title: Cpv Additional
        published_at:
          type: string
          format: date-time
          title: Published At
        deadline_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Deadline At
        estimated_value_eur:
          anyOf:
          - type: string
          - type: 'null'
          title: Estimated Value Eur
        procedure_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Procedure Type
        languages:
          items:
            type: string
          type: array
          title: Languages
        lot_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Lot Count
        award_criteria:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Award Criteria
        framework_agreement:
          anyOf:
          - type: string
          - type: 'null'
          title: Framework Agreement
        gpa_covered:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Gpa Covered
        selection_criteria:
          anyOf:
          - type: string
          - type: 'null'
          title: Selection Criteria
        requirements:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Requirements
        translation_de:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Translation De
        matched_cpv:
          items:
            type: string
          type: array
          title: Matched Cpv
        verticals:
          items:
            type: string
          type: array
          title: Verticals
        relevance_score:
          type: integer
          title: Relevance Score
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - source
      - source_id
      - source_url
      - title
      - buyer_country
      - published_at
      - relevance_score
      - created_at
      - updated_at
      title: TenderOut
    HealthOut:
      properties:
        status:
          type: string
          title: Status
        sources:
          additionalProperties:
            type: string
          type: object
          title: Sources
      type: object
      required:
      - status
      - sources
      title: HealthOut
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: 'OAuth 2.0 Client Credentials. client_id ist die Kennung eines API-Schluessels, client_secret der Schluessel selbst. Das Token laeuft nach einer Stunde ab und nennt seinen Umfang; wird der Schluessel widerrufen, traegt es sofort nicht mehr. Metadaten: /.well-known/oauth-authorization-server und /.well-known/oauth-protected-resource.'
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            tenders:read: Read tender search, detail, source status and country coverage.
            fulltext:read: Full text search across indexed notices. Requires a plan that permits it.
            profiles:read: Read company profiles and their explained matches.
            webhooks:write: Manage delivery webhooks.
    apiKeyBearer:
      type: http
      scheme: bearer
      bearerFormat: sk_<random>
      description: 'API-Schluessel als HTTP-Bearer-Token: ''Authorization: Bearer sk_...''. Kein anderer Header wird ausgewertet; eine Anfrage mit X-API-Key gilt als nicht angemeldet und laeuft im anonymen Limit. Schluessel gibt es kostenlos ueber POST /api/signup. Der Tarif des Schluessels (free, pro, agent) entscheidet ueber Limits und ueber den Zugang zu Volltextsuche, Export und Agent-Funktionen.'
x-refined-from:
- api.tender-agents.com_openapi.json
- tender-agents-com-agentleads-openapi.json