# API public v1

Catalogul moldova.travel — experiențe turistice, evenimente și pachete ale operatorilor — ca JSON, în română și engleză, fără cheie de acces. Aceleași date și aceeași regulă de publicare ca site-ul: ce nu este aprobat nu apare nicăieri.

- **Pagina web:** [https://travel.evisoft.com/ro/api/v1](https://travel.evisoft.com/ro/api/v1)
- **Acest document:** [https://travel.evisoft.com/ro/api/v1.md](https://travel.evisoft.com/ro/api/v1.md)
- **Limba:** ro
- **În alte limbi:** [EN](https://travel.evisoft.com/en/api/v1.md)

Pagina asta e pentru dezvoltatori — descrie API-ul public al site-ului, cu exemple de cereri și răspunsuri. Dacă vrei să-ți planifici o călătorie, începe de aici:

- [Planifică-ți călătoria](https://travel.evisoft.com/ro/plan)
- [Experiențe](https://travel.evisoft.com/ro/experiences.md)

Descrierile punctelor de acces și ale parametrilor de mai jos sunt în engleză, ca și documentul OpenAPI: sunt text de referință pentru dezvoltatori și asistenți AI.

## Pe scurt

- **Adresa de bază:** `https://travel.evisoft.com/api/v1`
- **Acces:** Fără cheie, fără cont. Doar cereri GET; nimic nu se poate scrie prin API.
- **Limită de cereri:** 60 de cereri pe minut pentru fiecare adresă IP. Peste limită, răspunsul este 429 cu antetul Retry-After.
- **Limba:** Parametrul lang acceptă: ro, en. Fără lang, răspunsul este în ro. O limbă nepublicată dă eroare 400, nu conținut într-o altă limbă.
- **Legături:** Fiecare element are url \(pagina lui de pe site\) și goUrl — legătura urmărită care duce la partener. goUrl este singura cale către partener; datele de contact nu apar în API. Nu o rescrie și nu o ocoli.
- **Prețuri:** Orice preț este în lei \(MDL\) și orientativ \(indicative: true\), oferit de partener. De la 2 octombrie 2026 prețurile și benzile de preț ale înregistrărilor stocate în euro au fost convertite în lei \(19,5 lei pentru un euro, rotunjit la 10 lei\); forma răspunsului nu s-a schimbat. Platforma nu încasează plăți și nu confirmă rezervări.
- **Cache:** Răspunsurile 200 vin cu Cache-Control public și pot fi păstrate câteva minute. Catalogul se schimbă rar; nu-l cere la fiecare secundă.
- **Erori:** Erorile sunt RFC 9457 \(application/problem+json\), cu un câmp errorCode stabil și, la validare, lista errors pe câmpuri.

## Document OpenAPI

Descrierea citibilă de mașină a acestui API, pentru generatoare de clienți și asistenți: [https://travel.evisoft.com/api/v1/openapi.json](https://travel.evisoft.com/api/v1/openapi.json)

## Puncte de acces

### GET /api/v1/experiences

List approved experiences

One page of the experience catalog, filterable by region, category, price band and traveller type — the same filters as the website's catalog, applied by the same service. Ordered as the site orders them.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |
| `region` | A region's stable code, e.g. orhei — the value every item's region.code carries. An unknown code is a 400. | `orhei` |
| `category` | Comma-separated category tokens, OR-ed: nature, culture, gastronomy, wine, adventure, wellness, history, religious, rural-tourism, entertainment, other. An unknown token is a 400. | `wine,gastronomy` |
| `price` | Comma-separated price-band tokens, OR-ed: free, budget, moderate, premium, luxury, unpriced. | `free,budget` |
| `audience` | Comma-separated traveller-type tokens; matches experiences suited to ANY of them: families, couples, solo, groups, seniors, reduced-mobility, adults-only. | `families` |
| `page` | 1-based page number, default 1. A page past the last one is a 404 with errorCode EXPERIENCE\_NOT\_FOUND, EVENT\_NOT\_FOUND or PACKAGE\_NOT\_FOUND. | `2` |
| `pageSize` | Items per page, 1 to 48. Default: the site's own catalog page size. | `12` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/experiences?lang=en&category=wine&pageSize=5"
```

### GET /api/v1/experiences/{id}

One experience

Everything the experience's page shows: description, location, opening hours, seasonal notes, photos, tags, the partner's name — and goUrl, the only way to reach the partner. Contact details are deliberately absent.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `id` | The item's stable numeric id — the id field of a list item. Slugs are decorative and may change; ids do not. | `12` |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/experiences/12?lang=en"
```

### GET /api/v1/events

List upcoming events

Approved events that have not yet ended, soonest first. Cancelled events are never listed; a cancelled event's detail still answers, flagged isCancelled.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |
| `page` | 1-based page number, default 1. A page past the last one is a 404 with errorCode EXPERIENCE\_NOT\_FOUND, EVENT\_NOT\_FOUND or PACKAGE\_NOT\_FOUND. | `2` |
| `pageSize` | Items per page, 1 to 48. Default: the site's own catalog page size. | `12` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/events?lang=ro"
```

### GET /api/v1/events/{id}

One event

The event's full description, venue and GPS location, dates \(UTC — display in Europe/Chisinau\), photos and organising partner.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `id` | The item's stable numeric id — the id field of a list item. Slugs are decorative and may change; ids do not. | `12` |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/events/3?lang=en"
```

### GET /api/v1/packages

List published tour packages

Packages that tour operators have published and whose company an ANTRIM administrator has approved, newest first.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |
| `page` | 1-based page number, default 1. A page past the last one is a 404 with errorCode EXPERIENCE\_NOT\_FOUND, EVENT\_NOT\_FOUND or PACKAGE\_NOT\_FOUND. | `2` |
| `pageSize` | Items per page, 1 to 48. Default: the site's own catalog page size. | `12` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/packages?lang=en"
```

### GET /api/v1/packages/{id}

One tour package

The package as the operator approved it: full description, indicative price, the operator's name and the tracked goUrl to reach them.

| Parametru | Descriere | Exemplu |
| --- | --- | --- |
| `id` | The item's stable numeric id — the id field of a list item. Slugs are decorative and may change; ids do not. | `12` |
| `lang` | ISO 639-1 code of a published language: ro or en. Default ro. Any other code — including a language the platform models but has not published — is a 400 naming the published set, never a fallback. | `en` |

Exemplu de cerere

```bash
curl \
  "https://travel.evisoft.com/api/v1/packages/1?lang=en"
```

## Erori

400 pentru o cerere greșită \(limbă nepublicată, filtru necunoscut, pagină în afara limitelor\), 404 pentru un element sau o pagină inexistentă, 429 la depășirea limitei. Corpul este mereu un obiect problem+json cu errorCode.

- [Serverul MCP moldova.travel](https://travel.evisoft.com/ro/mcp.md) — Un server Model Context Protocol care deschide asistenților de inteligență artificială catalogul public al platformei: experiențe, evenimente, pachete turistice și planificatorul de călătorie.

## Condiții de utilizare

Conținutul este publicat de ANTRIM și de partenerii săi. Poți afișa și redistribui datele cu trimitere la moldova.travel, păstrând goUrl neschimbat ca legătură către partener și prețurile ca orientative. API-ul este oferit ca atare, fără garanție de disponibilitate.

Aceasta este versiunea Markdown a paginii de mai sus. Linkurile spre parteneri trec prin moldova.travel, pe adrese care încep cu /go/, iar platforma doar îndrumă: nu preia rezervări și nu încasează plăți.
