# Public-contract competitors

Finds companies winning public contracts on CPV segments shared with the target company using DECP public award data.

## Endpoint

- Method: `POST`
- URL: `https://api.helpmyagent.com/v1/company/fr/public-contract-competitors`
- Price: `0.020 USD` / call

## Machine discovery

- llms.txt: https://helpmyagent.com/llms.txt
- OpenAPI 3.1: https://api.helpmyagent.com/openapi.json
- capabilities.json: https://helpmyagent.com/capabilities.json
- MCP: https://helpmyagent.com/mcp
- RFC 9727: https://helpmyagent.com/.well-known/api-catalog
- pricing.json: https://helpmyagent.com/pricing.json
- x402: https://helpmyagent.com/.well-known/x402
- x402-service.json: https://helpmyagent.com/.well-known/x402-service.json
- Health status: https://helpmyagent.com/health

## x402 payment methods

- USDC on `eip155:8453`
- RLUSD on `xrpl:0`

## Coverage

FR

## Use when

- Finds companies winning public contracts on CPV segments shared with the target company using DECP public award data.
- You need companies that win public contracts on CPV segments also observed for the target company.
- You want procurement-specific competitive signals from DECP award data.

## Avoid when

- You want general comparable companies based on activity, size and geography; use company/fr/peers.
- You only need the target company’s own awarded public contracts; use company/fr/public-contracts.

## Limitations

- Competition is inferred from shared public-contract CPV segments and is not an official competitive relationship.
- The result only reflects awards covered by the DECP public dataset.

## Freshness

```json
{
    "mode": "source_dependent"
}
```

## Sources

- [https://www.data.economie.gouv.fr/api/explore/v2.1/catalog/datasets/decp-2022-marches-valides/records](https://www.data.economie.gouv.fr/api/explore/v2.1/catalog/datasets/decp-2022-marches-valides/records)

## Input schema

```json
{
    "type": "object",
    "properties": {
        "identifier": {
            "type": "string",
            "pattern": "^[0-9]{9}([0-9]{5})?$",
            "description": "French company identifier: 9-digit SIREN or 14-digit SIRET."
        },
        "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "default": 10,
            "description": "Maximum number of records returned by this call. (minimum 1; maximum 25; default 10)."
        }
    },
    "required": [
        "identifier"
    ],
    "additionalProperties": false,
    "description": "Structured input parameters for the company/fr/public-contract-competitors API."
}
```

## Output schema

```json
{
    "type": "object",
    "properties": {
        "identifier": {
            "type": "string",
            "description": "Identifier supplied for the request, echoed in normalized form when applicable."
        },
        "exists": {
            "type": "boolean",
            "description": "Whether the requested company or public record was found in the checked source."
        },
        "siren": {
            "description": "Normalized 9-digit French SIREN when available."
        },
        "name": {
            "description": "Publicly available company, person, buyer or record name for this result."
        },
        "cpv_segments": {
            "type": "array",
            "description": "Structured value returned for “cpv segments” as defined by this API contract."
        },
        "competitors": {
            "type": "array",
            "description": "Structured value returned for “competitors” as defined by this API contract."
        },
        "limitations": {
            "type": "array",
            "description": "Known interpretation, source-coverage or freshness limitations for this result."
        }
    },
    "required": [
        "identifier",
        "exists",
        "siren",
        "name",
        "cpv_segments",
        "competitors"
    ],
    "additionalProperties": false,
    "description": "Structured result returned by the company/fr/public-contract-competitors API."
}
```

## Demonstration snapshot

This example is a database-stored snapshot and does not execute the live API.
- URL: https://api.helpmyagent.com/demo/company/fr/public-contract-competitors
- Generated at: 2026-09-07T14:49:32+00:00

## Request example

```json
{
    "identifier": "356000000",
    "limit": 5
}
```

## Stored response example

```json
{
    "identifier": "356000000",
    "exists": true,
    "siren": "356000000",
    "name": "LA POSTE",
    "cpv_segments": [
        "64100000-7",
        "64121100-1",
        "55521100-9",
        "75200000-8",
        "64120000-3",
        "72320000-4",
        "64000000-6",
        "64110000-0",
        "55521200-0",
        "79824000-6"
    ],
    "competitors": [
        {
            "siren": "477181010",
            "name": null,
            "contracts_count_in_sample": 6,
            "amount_in_sample": 1603000,
            "shared_cpv": [
                "55521200-0"
            ]
        },
        {
            "siren": "432889103",
            "name": null,
            "contracts_count_in_sample": 5,
            "amount_in_sample": 1425686.3,
            "shared_cpv": [
                "64100000-7"
            ]
        },
        {
            "siren": "390221406",
            "name": null,
            "contracts_count_in_sample": 3,
            "amount_in_sample": 626000,
            "shared_cpv": [
                "64121100-1"
            ]
        },
        {
            "siren": "810150045",
            "name": null,
            "contracts_count_in_sample": 3,
            "amount_in_sample": 363754.8,
            "shared_cpv": [
                "64121100-1"
            ]
        },
        {
            "siren": "824012173",
            "name": null,
            "contracts_count_in_sample": 2,
            "amount_in_sample": 8800000,
            "shared_cpv": [
                "75200000-8"
            ]
        }
    ],
    "limitations": [
        "Les concurrents sont identifiés à partir de titulaires de marchés partageant des codes CPV avec l’entreprise dans l’échantillon DECP interrogé.",
        "Ce résultat ne constitue pas une mesure exhaustive de parts de marché."
    ]
}
```

## Billing policy

```json
{
    "charge_on": "valid_result",
    "no_charge_on_empty_result": true,
    "no_charge_on_error": true
}
```
