# French Company EU Public Contracts

Searches TED notices for EU public-contract awards associated with a French company name or SIREN.

## Endpoint

- Method: `POST`
- URL: `https://api.helpmyagent.com/v1/company/fr/public-contracts-eu`
- 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

EU

## Use when

- Find EU public-contract notices won by a French company.
- You need TED public-contract award notices associated with a French company at EU procurement level.
- You want publication numbers, buyers, winners, CPV codes and decision dates from the supported TED search.

## Avoid when

- You need French DECP awarded contracts for the company; use company/fr/public-contracts.
- You need currently open French BOAMP opportunities; use procurement/fr/search.

## Limitations

- TED matching can rely on company name and available identifiers, so notices can be missed or require manual disambiguation.
- The result reflects notices returned by the TED public source and is not a complete statement of all EU business won by the company.

## Example queries

- Find EU public-contract notices won by a French company.

## Freshness

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

## Sources

- [API Recherche d’entreprises](https://recherche-entreprises.api.gouv.fr)
- [TED Search API](https://api.ted.europa.eu)

## 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": 50,
            "default": 20,
            "description": "Maximum number of records returned by this call. (minimum 1; maximum 50; default 20)."
        }
    },
    "additionalProperties": false,
    "required": [
        "identifier"
    ],
    "description": "Structured input parameters for the company/fr/public-contracts-eu 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": {
            "type": [
                "string",
                "null"
            ],
            "description": "Normalized 9-digit French SIREN when available."
        },
        "name": {
            "type": [
                "string",
                "null"
            ],
            "description": "Publicly available company, person, buyer or record name for this result."
        },
        "source_status": {
            "type": "string",
            "enum": [
                "ok",
                "unavailable",
                "not_queried"
            ],
            "description": "Availability status of the relevant upstream public source. (allowed values: ok, unavailable, not_queried)."
        },
        "search_query": {
            "type": [
                "string",
                "null"
            ],
            "description": "Structured value returned for “search query” as defined by this API contract."
        },
        "returned_count": {
            "type": [
                "integer",
                "null"
            ],
            "description": "Number of records included in this response."
        },
        "notices": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "publication_number": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Structured value returned for “publication number” as defined by this API contract."
                    },
                    "publication_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Structured value returned for “publication date” as defined by this API contract."
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Structured value returned for “title” as defined by this API contract."
                    },
                    "notice_type": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Structured value returned for “notice type” as defined by this API contract."
                    },
                    "buyers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Structured value returned for “buyers” as defined by this API contract."
                    },
                    "winners": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Structured value returned for “winners” as defined by this API contract."
                    },
                    "winner_identifiers": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Structured value returned for “winner identifiers” as defined by this API contract."
                    },
                    "winner_countries": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Structured value returned for “winner countries” as defined by this API contract."
                    },
                    "decision_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "Structured value returned for “decision date” as defined by this API contract."
                    },
                    "cpv_codes": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Structured value returned for “cpv codes” as defined by this API contract."
                    }
                },
                "additionalProperties": false,
                "required": [
                    "publication_number",
                    "publication_date",
                    "title",
                    "notice_type",
                    "buyers",
                    "winners",
                    "winner_identifiers",
                    "winner_countries",
                    "decision_date",
                    "cpv_codes"
                ]
            },
            "description": "Structured value returned for “notices” as defined by this API contract."
        },
        "checked_at": {
            "type": "string",
            "description": "UTC timestamp at which HelpMyAgent performed the check."
        },
        "limitations": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Known interpretation, source-coverage or freshness limitations for this result."
        }
    },
    "additionalProperties": false,
    "required": [
        "identifier",
        "exists",
        "siren",
        "name",
        "source_status",
        "search_query",
        "returned_count",
        "notices",
        "checked_at"
    ],
    "description": "Structured result returned by the company/fr/public-contracts-eu 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-contracts-eu
- Generated at: 2026-09-07T14:50:14+00:00

## Request example

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

## Stored response example

```json
{
    "identifier": "356000000",
    "exists": true,
    "siren": "356000000",
    "name": "LA POSTE",
    "source_status": "ok",
    "search_query": "winner-identifier=\"356000000\" OR winner-identifier=\"356 000 000\" OR winner-name~\"LA POSTE\"",
    "returned_count": 0,
    "notices": [],
    "checked_at": "2026-09-07T16:50:14+02:00",
    "limitations": [
        "La recherche TED utilise les identifiants et noms publiés dans les avis européens puis filtre les résultats sur le SIREN/SIRET ou le nom normalisé du titulaire.",
        "Lorsque TED est indisponible, returned_count reste null et n’est pas assimilé à zéro."
    ]
}
```

## Billing policy

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