# Johto Data API – French Public Tenders (BOAMP)

> Johto Data API – French Public Tenders (BOAMP) is a paid API for AI agents from johto-x402-api.johtodata.workers.dev, paid per call via x402, $0.06/call, status unknown (last checked 2026-10-28).

Searches and retrieves French public procurement notices from BOAMP, filterable by keyword, département, date, and pagination.

## Facts

- Endpoint: GET https://johto-x402-api.johtodata.workers.dev/v1/fr-tenders?utm_source=zero.xyz
- Price: $0.06/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-28
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/johto-data-api-french-public-tenders-boamp-f0165b5d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-aD7Al89oHJJzt9uPMajQ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability johto-data-api-french-public-tenders-boamp-f0165b5d
```

Example prompt: Search French public procurement notices on BOAMP for IT services tenders published since 2026-01-01 in département 75, and show me up to 10 results.

## When to prefer this

Choose this endpoint when you need to search or monitor French public procurement notices from BOAMP with flexible filtering by keyword, département, and publication date. Prefer this over generic web scraping when you want structured, consistently formatted tender data with buyer details, deadlines, and procedure types. Use this endpoint specifically for France (FR) public contracts; use the sibling UK tenders endpoint for British procurement and the AU contracts endpoint for Australian contracts.

## Known failure modes

- No results returned if keyword or département filter matches nothing — rows will be 0 and data will be empty array
- Invalid département code format (must match ^([0-9]{2,3}|2A|2B)$) will cause a validation error
- Invalid date format (must be YYYY-MM-DD) will cause a validation error
- Limit out of range (must be 1-25) will cause a validation error
- Offset out of range (must be 0-9900) will cause a validation error
- Payment not charged if fetch fails or nothing matches

## How this service works

Valuable data. Quality leads. Paid per call in USDC on Base via x402. Not charged if the fetch fails or nothing matches. Prices per call (USDC): /v1/jp-invoice-check $0.002; /v1/sec-13f $0.003; /v1/sec-8k $0.003; /v1/sanctions-screen $0.0025; /v1/tenders $0.011; /v1/uk-tenders $0.003; /v1/fr-tenders $0.006; /v1/au-contracts $0.0035; /v1/wallet-risk $0.0025; /v1/kyb $0.0029; /v1/read $0.0019; /v1/crawl $0.0045; /v1/jobs $0.01; /v1/domain-profile $0.003.

## Output

Returns a JSON object with a `data` array of tender notice objects, each containing title, source, notice_id, buyer_name, categories, notice_url, notice_type, procedure_type, published_date, deadline_date, buyer_country, value_amount, value_currency, category_scheme, and data_as_of timestamp. Also includes a `rows` count and `fetchedAt` timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "q": {
       "type": "string",
       "description": "Keyword in the title, 2-60 characters"
      },
      "dept": {
       "type": "string",
       "pattern": "^([0-9]{2,3}|2A|2B)$",
       "description": "Département code, e.g. 75"
      },
      "limit": {
       "type": "string",
       "pattern": "^([1-9]|1[0-9]|2[0-5])$",
       "description": "Notices 1-25 (default 25)"
      },
      "since": {
       "type": "string",
       "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
       "description": "Published on or after, YYYY-MM-DD"
      },
      "offset": {
       "type": "string",
       "pattern": "^[0-9]{1,4}$",
       "description": "Rows to skip, 0-9900"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "data",
      "rows",
      "fetchedAt"
     ],
     "properties": {
      "data": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "title": {
          "type": "string"
         },
         "source": {
          "type": "string"
         },
         "notice_id": {
          "type": "string"
         },
         "buyer_name": {
          "type": "string"
         },
         "categories": {
          "type": "array",
          "items": {
           "type": "string"
          }
         },
         "data_as_of": {
          "type": "string"
         },
         "notice_url": {
          "type": "string"
         },
         "notice_type": {
          "type": "string"
         },
         "value_amount": {},
         "buyer_country": {
          "type": "string"
         },
         "deadline_date": {
          "type": "string"
         },
         "procedure_type": {
          "type": "string"
         },
         "published_date": {
          "type": "string"
         },
         "value_currency": {},
         "category_scheme": {
          "type": "str
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": [
   {
    "title": "Fourniture de consommables pour réchauffeurs de sang  et solutés avec mise à disposition des réchauffeurs",
    "source": "boamp",
    "notice_id": "BOAMP-26-102038",
    "buyer_name": "37 CHRU",
    "categories": [
     "Consommables médicaux"
    ],
    "data_as_of": "2026-10-22T14:51:49.809Z",
    "notice_url": "https://www.boamp.fr/pages/avis/?q=idweb:26-102038",
    "notice_type": "Avis de marché",
    "value_amount": null,
    "buyer_country": "FR",
    "deadline_date": "2026-11-23T16:00:00+00:00",
    "procedure_type": "Procédure Ouverte",
    "published_date": "2026-10-22",
    "value_currency": null,
    "category_scheme": "BOAMP"
   },
   {
    "title": "FOURNITURE DE PAIN ET DE PRODUITS DE BOULANGERIE",
    "source": "boamp",
    "notice_id": "BOAMP-26-102055",
    "buyer_name": "Mairie de Castres",
    "categories": [
     "Denrées alimentaires"
    ],
    "data_as_of": "2026-10-22T14:51:49.809Z",
    "notice_url": "https://www.boamp.fr/pages/avis/?q=idweb:26-102055",
    "notice_type": "Avis de marché",
    "value_amount": null,
    "buyer_country": "FR",
    "deadline_date": "2026-11-27T11:00:00+00:00",
    "procedure_type": "Procédure Ouverte",
    "published_date": "2026-10-22",
    "value_currency": null,
    "category_scheme": "BOAMP"
   },
   {
    "title": "SERVICES D'ASSURANCES",
    "source": "boamp",
    "notice_id": "BOAMP-26-102072",
    "buyer_name": "SMICTOM DE LA BRUYERE",
    "categories": [
     "Assurance"
    ],
    "data_as_of": "2026-10-22T14:51:49.809Z",
    "notice_url": "https://www.boamp.fr/pages/avis/?q=idweb:26-102072",
    "notice_type": "Avis de marché",
    "value_amount": null,
    "buyer_country": "FR",
    "deadline_date": "2026-11-30T11:00:00+00:00",
    "procedure_type": "Procédure Ouverte",
    "published_date": "2026-10-22",
    "value_currency": null,
    "category_scheme": "BOAMP"
   },
   {
    "title": "MANDAT DE MAITRISE D'OUVRAGE REAMENAGEMENT DU PORT DEPARTEMENTAL DE PORT-LOUIS",
    "source": "boamp",
    "notice_id": "BOAMP-26-102086",
    "buyer_name": "Conseil Départemental de la Guadeloupe",
    "categories": [
     "Etude",
     "Délégation de service public"
    ],
    "data_as_of": "2026-10-22T14:51:49.809Z",
    "notice_url": "https://www.boamp.fr/pages/avis/?q=idweb:26-102086",
    "notice_type": "Avis de marché",
    "value_amount": null,
    "buyer_country": "FR",
    "deadline_date": "2026-10-20T17:00:00+00:00",
    "procedu
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/johto-data-api-french-public-tenders-boamp-f0165b5d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from johto-x402-api.johtodata.workers.dev](https://www.zero.xyz/host/johto-x402-api.johtodata.workers.dev/llms.txt)
