{
    "openapi": "3.1.0",
    "info": {
        "title": "Ladoual Immigration Canada Inc, accès en lecture",
        "summary": "Lecture publique du contenu du cabinet, en Markdown ou en JSON.",
        "description": "Interfaces de lecture publiées par Ladoual Immigration Canada Inc, cabinet de consultation en immigration à Montréal (Québec, Canada).\n\nAucune authentification, aucune clé, aucun quota : tout le contenu publié est lisible de façon anonyme. Il n'existe pas d'API commerciale ni de bac à sable, le cabinet vendant des services professionnels et non un logiciel.\n\nLes mêmes adresses servent du HTML à un navigateur et du Markdown à un agent, selon l'en-tête Accept (convention acceptmarkdown.com).",
        "version": "1.0.0",
        "contact": {
            "name": "Ladoual Immigration Canada Inc",
            "url": "https://ladoualimmigration.ca/contact-ladoual-immigration-canada/",
            "email": "contact@ladoualimmigration.ca"
        },
        "license": {
            "name": "Contenu du cabinet, tous droits réservés",
            "url": "https://ladoualimmigration.ca/conditions-dutilisation/"
        }
    },
    "servers": [
        {
            "url": "https://ladoualimmigration.ca"
        }
    ],
    "paths": {
        "/llms.txt": {
            "get": {
                "operationId": "getLlmsTxt",
                "summary": "Index du site pour les modèles de langage, avec le mode d'emploi du cabinet.",
                "tags": [
                    "Decouverte"
                ],
                "responses": {
                    "200": {
                        "description": "Fichier llms.txt.",
                        "content": {
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/agents.md": {
            "get": {
                "operationId": "getAgentInstructions",
                "summary": "Instructions pour les agents : quand utiliser cette source et comment l'appeler.",
                "tags": [
                    "Decouverte"
                ],
                "responses": {
                    "200": {
                        "description": "Le contenu de la page en Markdown.",
                        "content": {
                            "text/markdown": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/sitemap_index.xml": {
            "get": {
                "operationId": "getSitemapIndex",
                "summary": "Index des plans de site XML.",
                "tags": [
                    "Decouverte"
                ],
                "responses": {
                    "200": {
                        "description": "Index XML.",
                        "content": {
                            "application/xml": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/feed/markdown/": {
            "get": {
                "operationId": "getMarkdownFeed",
                "summary": "Derniers guides publiés, en Markdown.",
                "tags": [
                    "Contenu"
                ],
                "responses": {
                    "200": {
                        "description": "Le contenu de la page en Markdown.",
                        "content": {
                            "text/markdown": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/{slug}.md": {
            "get": {
                "operationId": "getPageMarkdown",
                "summary": "Une page ou un guide en Markdown. La même adresse sans le suffixe répond en Markdown avec l'en-tête Accept: text/markdown, ou avec le paramètre ?format=markdown.",
                "tags": [
                    "Contenu"
                ],
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "services"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Le contenu de la page en Markdown.",
                        "content": {
                            "text/markdown": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Adresse inexistante. Le corps est un Markdown qui renvoie vers les points d'entrée du site.",
                        "content": {
                            "text/markdown": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Le client n'accepte ni text/html ni text/markdown.",
                        "content": {
                            "text/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/wp-json/wp/v2/posts": {
            "get": {
                "operationId": "listGuides",
                "summary": "Liste des guides publiés, en JSON.",
                "tags": [
                    "Contenu"
                ],
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Nombre de résultats par page, 1 à 100.",
                        "schema": {
                            "type": "integer",
                            "default": 10,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Recherche plein texte.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "_fields",
                        "in": "query",
                        "description": "Champs à retourner, séparés par des virgules.",
                        "schema": {
                            "type": "string"
                        },
                        "example": "id,slug,link,title,date"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tableau de guides. Le nombre total est dans l'en-tête X-WP-Total.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/wp-json/wp/v2/posts/{id}": {
            "get": {
                "operationId": "getGuide",
                "summary": "Un guide par identifiant, en JSON.",
                "tags": [
                    "Contenu"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Le guide.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Identifiant inconnu."
                    }
                }
            }
        },
        "/wp-json/wp/v2/pages": {
            "get": {
                "operationId": "listPages",
                "summary": "Liste des pages publiées, en JSON.",
                "tags": [
                    "Contenu"
                ],
                "responses": {
                    "200": {
                        "description": "Tableau de pages.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/wp-json/wp/v2/categories": {
            "get": {
                "operationId": "listCategories",
                "summary": "Rubriques du blogue, en JSON.",
                "tags": [
                    "Contenu"
                ],
                "responses": {
                    "200": {
                        "description": "Tableau de rubriques.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/wp-json/wp/v2/search": {
            "get": {
                "operationId": "search",
                "summary": "Recherche dans les contenus publiés.",
                "tags": [
                    "Contenu"
                ],
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "permis de travail"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Résultats.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "tags": [
        {
            "name": "Decouverte",
            "description": "Fichiers d'orientation publiés à des adresses prévisibles."
        },
        {
            "name": "Contenu",
            "description": "Lecture des guides et des pages."
        }
    ]
}
