{"openapi":"3.1.0","info":{"title":"Interview Solver API","summary":"Public REST API for the Interview Solver AI interview copilot","description":"Machine-readable API surface for Interview Solver. Use these unauthenticated endpoints to discover product metadata, pricing, desktop app downloads, and supported AI models. Account-gated chat, document, and billing APIs are intentionally omitted. Human docs: https://interviewsolver.com/developers.","version":"1.0.0","contact":{"name":"Interview Solver Support","email":"hello@interviewsolver.com","url":"https://interviewsolver.com/contact"}},"servers":[{"url":"https://interviewsolver.com","description":"Interview Solver production"}],"tags":[{"name":"Catalog","description":"Public product, pricing, and resource discovery."},{"name":"Status","description":"Liveness and desktop release metadata."},{"name":"Models","description":"AI models available in Interview Solver."}],"paths":{"/api/v1/health":{"get":{"operationId":"getHealth","tags":["Status"],"summary":"Service health","description":"Returns whether the Interview Solver public API is reachable. Use this as a liveness check before calling other catalog endpoints.","responses":{"200":{"description":"The service is healthy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/v1/product":{"get":{"operationId":"getProduct","tags":["Catalog"],"summary":"Product metadata","description":"Returns Interview Solver product identity, platforms, feature list, and links to docs, OpenAPI, and llms.txt so agents can introduce the product without scraping HTML.","responses":{"200":{"description":"Product catalog entry for Interview Solver.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Product"}}}}}}},"/api/v1/pricing":{"get":{"operationId":"getPricing","tags":["Catalog"],"summary":"Public pricing","description":"Returns the publicly advertised Interview Solver plans, including the free trial message allowance and the monthly subscription amount in USD cents.","responses":{"200":{"description":"Public pricing catalog.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}}}}},"/api/v1/models":{"get":{"operationId":"listModels","tags":["Models"],"summary":"List AI models","description":"Lists default Interview Solver models and premium models that require a customer-supplied API key. Identifiers are stable for desktop clients.","responses":{"200":{"description":"Available default and premium models.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelCatalog"}}}}}}},"/api/v1/version":{"get":{"operationId":"getDesktopVersion","tags":["Status"],"summary":"Desktop app version","description":"Returns the current Interview Solver desktop app version and download URLs for macOS, Windows x64, and Windows ARM64.","responses":{"200":{"description":"Desktop release metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopVersion"}}}}}}},"/api/v1/resources":{"get":{"operationId":"listDeveloperResources","tags":["Catalog"],"summary":"Developer resource index","description":"Lists Interview Solver developer resources (OpenAPI, docs, auth notes, Stripe webhooks) so agents can discover integration points by product name.","responses":{"200":{"description":"Index of public developer resources.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeveloperResources"}}}}}}},"/api/version":{"get":{"operationId":"getLegacyDesktopVersion","tags":["Status"],"summary":"Legacy desktop version","description":"Compatibility endpoint used by existing Interview Solver desktop clients. Prefer getDesktopVersion (`GET /api/v1/version`) for new integrations.","responses":{"200":{"description":"Legacy version payload with download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyDesktopVersion"}}}}}}},"/api/products":{"get":{"operationId":"listLegacyProducts","tags":["Catalog"],"summary":"Legacy Stripe product list","description":"Compatibility endpoint returning Stripe-shaped product and price objects. Prefer getPricing (`GET /api/v1/pricing`) for new integrations.","responses":{"200":{"description":"Array of Stripe-shaped product objects.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LegacyProduct"}}}}}}}},"/api/models":{"get":{"operationId":"listLegacyModels","tags":["Models"],"summary":"Legacy default model list","description":"Compatibility endpoint returning the default (non-premium) Interview Solver models. Prefer listModels (`GET /api/v1/models`).","responses":{"200":{"description":"Array of default AI models.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AiModel"}}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApiSpec","tags":["Catalog"],"summary":"OpenAPI specification","description":"Returns this OpenAPI 3.1 document so agents and function-calling runtimes can load the Interview Solver API schema from a well-known URL.","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"OpenAPI 3.1 specification document."}}}}}}}},"components":{"schemas":{"ErrorMessage":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message."}}},"Health":{"type":"object","additionalProperties":false,"required":["status","service","timestamp"],"properties":{"status":{"type":"string","enum":["ok"]},"service":{"type":"string","description":"Service display name."},"timestamp":{"type":"string","format":"date-time","description":"ISO-8601 time of the health check."}}},"Contact":{"type":"object","additionalProperties":false,"required":["email","url"],"properties":{"email":{"type":"string","format":"email"},"url":{"type":"string","format":"uri"}}},"Product":{"type":"object","additionalProperties":false,"required":["name","slug","description","website","documentation_url","openapi_url","llms_txt_url","contact","platforms","features"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"website":{"type":"string","format":"uri"},"documentation_url":{"type":"string","format":"uri"},"openapi_url":{"type":"string","format":"uri"},"llms_txt_url":{"type":"string","format":"uri"},"contact":{"$ref":"#/components/schemas/Contact"},"platforms":{"type":"array","items":{"type":"string"}},"features":{"type":"array","items":{"type":"string"}}}},"PricingPlan":{"type":"object","additionalProperties":false,"required":["id","name","interval","interval_count","amount","amount_decimal","description"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"interval":{"type":"string","enum":["month"]},"interval_count":{"type":"integer","minimum":1},"amount":{"type":"integer","description":"Price in the smallest currency unit (cents)."},"amount_decimal":{"type":"string"},"description":{"type":"string"}}},"Pricing":{"type":"object","additionalProperties":false,"required":["currency","free_tier","plans"],"properties":{"currency":{"type":"string","enum":["USD"]},"free_tier":{"type":"object","additionalProperties":false,"required":["available","included_messages","description"],"properties":{"available":{"type":"boolean"},"included_messages":{"type":"integer"},"description":{"type":"string"}}},"plans":{"type":"array","items":{"$ref":"#/components/schemas/PricingPlan"}}}},"AiModel":{"type":"object","additionalProperties":true,"required":["name","modelId","description","company"],"properties":{"name":{"type":"string"},"modelId":{"type":"string","description":"Stable identifier used by desktop clients."},"description":{"type":"string"},"company":{"type":"string"},"isPremium":{"type":"boolean"},"requires_user_api_key":{"type":"boolean"}}},"ModelCatalog":{"type":"object","additionalProperties":false,"required":["default","premium"],"properties":{"default":{"type":"array","items":{"$ref":"#/components/schemas/AiModel"}},"premium":{"type":"array","items":{"$ref":"#/components/schemas/AiModel"}}}},"DesktopVersion":{"type":"object","additionalProperties":false,"required":["version","downloads"],"properties":{"version":{"type":"string"},"downloads":{"type":"object","additionalProperties":false,"required":["mac","win","win_arm64"],"properties":{"mac":{"type":"string","format":"uri"},"win":{"type":"string","format":"uri"},"win_arm64":{"type":"string","format":"uri"}}}}},"LegacyDesktopVersion":{"type":"object","additionalProperties":false,"required":["version","url","winUrl","winArm64Url"],"properties":{"version":{"type":"string"},"url":{"type":"string","format":"uri"},"winUrl":{"type":"string","format":"uri"},"winArm64Url":{"type":"string","format":"uri"}}},"LegacyPrice":{"type":"object","additionalProperties":true,"required":["id","currency","unit_amount","interval"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"active":{"type":"boolean"},"currency":{"type":"string"},"interval":{"type":"string"},"unit_amount":{"type":"integer"},"interval_count":{"type":"integer"},"product_id":{"type":"string"},"description":{"type":["string","null"]}}},"LegacyProduct":{"type":"object","additionalProperties":true,"required":["id","name","active","prices"],"properties":{"id":{"type":"string"},"active":{"type":"boolean"},"name":{"type":"string"},"description":{"type":["string","null"]},"image":{"type":["string","null"]},"prices":{"type":"array","items":{"$ref":"#/components/schemas/LegacyPrice"}}}},"DeveloperResources":{"type":"object","additionalProperties":false,"required":["name","description","links","authentication","webhooks"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"links":{"type":"object","additionalProperties":{"type":"string","format":"uri"}},"authentication":{"type":"object","additionalProperties":{"type":"string"}},"webhooks":{"type":"object","additionalProperties":true}}}}}}