{
    "openapi": "3.0.3",
    "info": {
        "title": "Idea2Code API",
        "description": "The public, unauthenticated endpoints of the Idea2Code API by Atomos Technologies OPC Private Limited. Everything a client does with their own projects, documents and payments requires a bearer token and is deliberately not described here.",
        "version": "1.0.0",
        "contact": {
            "name": "Atomos Engineering",
            "email": "care@idea2code.org",
            "url": "https://idea2code.org"
        }
    },
    "servers": [
        {
            "url": "https://idea2code.org/api/v1",
            "description": "Production"
        }
    ],
    "paths": {
        "/products": {
            "get": {
                "summary": "The product catalogue shown in the app.",
                "responses": {
                    "200": {
                        "description": "The active products."
                    }
                }
            }
        },
        "/availabilities": {
            "get": {
                "summary": "Bookable appointment slots for a date. Times are Asia/Kolkata.",
                "parameters": [
                    {
                        "name": "date",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Slot start and end times."
                    }
                }
            }
        },
        "/availabilities/calendar": {
            "get": {
                "summary": "Dates in the booking window with no slots left, and the window itself.",
                "responses": {
                    "200": {
                        "description": "Full dates and the window."
                    }
                }
            }
        },
        "/content/contact": {
            "get": {
                "summary": "Company contact details, GSTIN and D-U-N-S.",
                "responses": {
                    "200": {
                        "description": "Contact details."
                    }
                }
            }
        },
        "/auth/register": {
            "post": {
                "summary": "Create a client account. Sends a verification code by email.",
                "responses": {
                    "201": {
                        "description": "Created."
                    },
                    "422": {
                        "description": "Validation failed."
                    }
                }
            }
        }
    }
}
