canonical: https://jentic.com/apis/publicpro.eu/publicpro

# Publicpro Contracts-gis API

The PublicPro Contracts-gis API retrieves Greek public-sector contract records and the pre-contract procurement phase behind them by id. A contract lookup returns the title, contractor_name and contractor_vat, contract_type, net and gross amounts, start and end dates, and status, while a procurement lookup returns the process title, award procedure, net and gross budget, current process step, and tender date. The spec's servers are a PublicPro demo host and a SwaggerHub mock server.

## For AI agents

Fetch a PublicPro public contract by id for its contractor, VAT number, amounts, dates, and status, or fetch the procurement phase for its tender details and budget. Read-only, two lookups.

## Scope

Does not handle contract search, tender submission, or payments to contractors. Use for retrieving PublicPro contract and procurement records by id only.

## Capabilities

- Retrieve a public contract by id with its contractor_name, contractor_vat, and contract_type
- Read a contract's amount_net and amount_gross alongside its start_date, end_date, and status
- Fetch the procurement phase for a contract id with its award_procedure and process_step
- Compare a tender's budget_net and budget_gross with the awarded contract amounts
- Get the tender_date and process title for the competition that led to a contract

## Use cases

### Agent checks on a public contract

An AI agent supporting a Greek municipality or auditor can pull a contract by id from the PublicPro Contracts-gis API and report its contractor, VAT number, net and gross amount, dates, and status, then pull the matching procurement record to show how the contract was tendered. Both lookups take only the id, so the agent needs no search step when the id is already on file.

Example prompt: Get contract 589, then get procurement 589 and report the contractor_name, amount_gross, award_procedure, and process_step together

### Budget versus award comparison

Finance and transparency teams compare what a tender was budgeted at against what was finally awarded. The procurement record carries budget_net and budget_gross and the contract record carries amount_net and amount_gross, so a script can compute the difference for each contract id it holds.

Example prompt: For contract id 589, fetch the procurement budget_gross and the contract amount_gross and return the difference

### Contractor VAT verification

Before paying a supplier, a team can read the contractor_vat on the PublicPro contract record and pass it to a VAT validation service to confirm the registered business matches contractor_name. The contract record gives the number, and a separate VAT API confirms its registration.

Example prompt: Read contractor_vat from contract 589 and pass it to a VAT validation API with country code EL

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/contracts/{id}` | Retrieve a contract by id |
| GET | `/procurements/{id}` | Retrieve the procurement phase by id |

## Key resources

- **Contracts** — Public contract records with contractor, amounts, dates, and status
- **Procurements** — Pre-contract procurement phase with award procedure, budget, process step, and tender date

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 32 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 78 / 100
  - AI-Readiness & Agent Experience: 21 / 100
  - Agent Usability: 94 / 100
  - Security: 10 / 100
  - AI Discoverability: 81 / 100
- **View full report:** https://jentic.com/apis/publicpro.eu/publicpro/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the PublicPro Contracts-gis API by hand means setting up HTTP basic auth, picking the right host from a demo and a mock server, and reading Greek-language field descriptions. Through Jentic you install once, import PublicPro from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** PublicPro puts the contract id in the URL path (`/contracts/{id}` and `/procurements/{id}`), so a rule can pin your agent to specific contract ids and to one or both lookups. Both operations are reads, and you choose which the agent may call.
- **Credential handling:** Your PublicPro username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'retrieve a public contract' or 'get the tender details for a contract', and Jentic returns the matching PublicPro operation with its input schema so the agent calls the right endpoint without reading the Greek reference docs.

## Related APIs

- **Licitalab** — Licitalab tracks public tenders in Chile with search and collaboration features.
- **Jaggaer Sourcing Optimizer** — Jaggaer runs sourcing events and bid optimisation for procurement teams.
- **44api VAT Validation** — 44api validates VAT numbers across EU states through VIES.

## FAQ

### What authentication does the PublicPro Contracts-gis API use?

The PublicPro Contracts-gis API declares HTTP basic authentication in its OpenAPI spec, so requests carry a username and password in the Authorization header. Through Jentic the credentials are stored once and injected at call time, so they never appear in your agent's prompt or logs.

### What does a PublicPro procurement record contain?

GET `/procurements/{id}` returns the procurement phase for a contract: id, process_title, contract_type, award_procedure, budget_net, budget_gross, process_step, and tender_date. The spec's example shows an open electronic tender for computer equipment at the offer evaluation step.

### What are the rate limits for the PublicPro Contracts-gis API?

The OpenAPI spec does not specify rate limits for the PublicPro Contracts-gis API. Check the PublicSoft listing at https://app.swaggerhub.com/apis/PublicSoft-PC/GIS/1.0.0 or contact PublicPro for current limits.

### Can I search PublicPro contracts by contractor or date?

No. The spec exposes two lookups that each take an id in the path, GET `/contracts/{id}` and GET `/procurements/{id}`, with no search or list operation. You need the contract id from another source before calling it.

### How do I retrieve a contract with the PublicPro Contracts-gis API through Jentic?

Search Jentic for 'retrieve a public contract by id', which returns GET `/contracts/{id}` with its input schema, then pass the contract id. Point the call at the host PublicPro gives you, since the spec lists a demo server and a mock server. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a PublicPro MCP server?

You don't need an MCP server to give your agent the PublicPro Contracts-gis API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it, finding the lookup by intent rather than loading tool definitions into its context.

### Can I limit what my agent is allowed to do with the PublicPro Contracts-gis API?

Yes. Write a rule that allows only GET `/contracts/{id}` for the ids your project covers, for example `/contracts/589`, so the agent reads those contracts but not their procurement records or anything else, and every call it makes is logged.
