API e MCP di ProjetLab
ProjetLab pubblica un'API REST in sola lettura e un server MCP con gli stessi contenuti del sito: dati dello studio, servizi, portfolio progetti e articoli del blog. Servono ad agent e integrazioni che devono rispondere su uno studio di architettura nell'area di Napoli, Boscoreale e Torre Annunziata. Le landing dei servizi e le guide ai bonus sono su /api/v1/pages.
Autenticazione
Nessuna. Tutti gli endpoint sono pubblici, in sola lettura (GET) e con CORS aperto. Base URL: https://projetlab.it. Specifica completa: openapi.json (OpenAPI 3.1), catalogo /.well-known/api-catalog (RFC 9727).
Endpoint
| Metodo | Percorso | operationId | Contenuto |
|---|---|---|---|
| GET | /api/v1/info | getStudioInfo | Dati dello studio: indirizzo, telefoni, email, orari, zona servita |
| GET | /api/v1/services | listServices | Elenco dei servizi |
| GET | /api/v1/services/{slug} | getService | Dettaglio di un servizio |
| GET | /api/v1/projects | listProjects | Portfolio progetti, filtrabile con ?category= (category: residenziali, infrastrutture, retail) |
| GET | /api/v1/projects/{id} | getProject | Dettaglio di un progetto |
| GET | /api/v1/posts | listPosts | Articoli del blog |
| GET | /api/v1/posts/{slug} | getPost | Articolo completo in markdown |
| GET | /api/v1/pages | listPages | Landing dei servizi e guide scritte a mano |
Esempi
curl -s https://projetlab.it/api/v1/info
curl -s https://projetlab.it/api/v1/projects?category=residenziali
curl -s https://projetlab.it/api/v1/posts/bonus-ristrutturazione-2026-campaniaLimiti di utilizzo
60 richieste al minuto per IP. Ogni risposta riporta gli header IETF RateLimit-Policy (es. "default";q=60;w=60) e RateLimit (richieste residue e secondi al reset). Oltre il limite la risposta è 429 con Retry-After.
Errori
Gli errori sotto /api/ sono in application/problem+json (RFC 9457) con i campi type, title, status, detail, code e resolution. Codici: not_found, service_not_found, project_not_found, post_not_found, invalid_id, invalid_category, method_not_allowed, rate_limited.
{
"type": "https://projetlab.it/docs#errori",
"title": "Progetto non trovato",
"status": 404,
"detail": "Nessun progetto con id 9999.",
"code": "project_not_found",
"resolution": "Elenca gli ID validi con GET /api/v1/projects."
}Server MCP
Endpoint Streamable HTTP (JSON-RPC 2.0, senza sessione): POST https://projetlab.it/mcp. Server card: /.well-known/mcp/server-card.json, manifest per il registry: /server.json. Tool in sola lettura:
get_studio_info: Indirizzo, telefoni, email, orari e zona servita dello studio di architettura ProjetLab (Boscoreale, Napoli).list_services: Elenca i servizi dello studio (progettazione, ristrutturazioni, interior design, bonus edilizi...).get_service: Dettaglio di un servizio: descrizione, vantaggi, fasi del processo.list_projects: Elenca i progetti del portfolio, opzionalmente filtrati per categoria.get_project: Dettaglio di un progetto del portfolio: descrizione, superficie, stato, immagini.list_blog_posts: Elenca gli articoli del blog (ristrutturazioni, bonus edilizi in Campania, design).get_blog_post: Articolo completo del blog in markdown.list_pages: Elenca le landing dei servizi (ristrutturazione casa, interior design) e le guide ai bonus edilizi in Campania.
Risorse: projetlab://studio, projetlab://services, projetlab://projects, projetlab://pages e un articolo per risorsa su projetlab://blog/{slug}.
curl -s https://projetlab.it/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_studio_info","arguments":{}}}'Pagine in markdown
Ogni pagina del sito risponde in markdown se richiesta con Accept: text/markdown. Le risposte HTML e markdown dichiarano Vary: Accept. Guida per agent: llms.txt.
curl -s -H 'Accept: text/markdown' https://projetlab.it/chi-siamoContatti
Per segnalazioni sull'API scrivi a info@projetlab.it. Preventivi e sopralluoghi passano solo dalla pagina Contatti.