openapi: 3.2.0 info: title: CoworkingView Config API version: 1.0.0 description: 'Read API for the CoworkingView catalogue plus the lead write path. Within a major version this contract is APPEND-ONLY: fields are added, never removed or retyped, because clients include mobile builds that cannot be recalled. A breaking change means /v2, with /v1 kept alive for at least two app releases.' servers: - url: https://api.coworkingview.com description: Production - url: http://localhost:4000 description: Local development tags: - name: Config paths: /v1/config: get: operationId: config summary: Remote config, feature flags and the minimum supported build description: 'Remote configuration for official clients: feature flags and the minimum supported app build. Third-party agents can ignore this; catalogue reads do not depend on it. No API key.' tags: - Config responses: '200': description: Success content: application/json: schema: $schema: https://json-schema.org/draft/2020-12/schema type: object properties: data: type: object properties: minSupportedBuild: type: integer minimum: 0 maximum: 9007199254740991 recommendedBuild: type: integer minimum: 0 maximum: 9007199254740991 flags: type: object propertyNames: type: string additionalProperties: type: boolean message: type: object properties: title: type: string body: type: string severity: type: string enum: - info - warning - critical required: - title - body - severity additionalProperties: false required: - minSupportedBuild - flags additionalProperties: false meta: type: object properties: contractVersion: type: string pagination: type: object properties: page: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 pageSize: type: integer exclusiveMinimum: 0 maximum: 9007199254740991 total: type: integer minimum: 0 maximum: 9007199254740991 pageCount: type: integer minimum: 0 maximum: 9007199254740991 required: - page - pageSize - total - pageCount additionalProperties: false truncated: type: boolean seed: type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - contractVersion additionalProperties: false required: - data - meta additionalProperties: false '400': description: VALIDATION_FAILED content: application/problem+json: schema: $schema: https://json-schema.org/draft/2020-12/schema type: object properties: type: type: string title: type: string status: type: integer minimum: 400 maximum: 599 detail: type: string code: type: string enum: - VALIDATION_FAILED - NOT_FOUND - RATE_LIMITED - CHALLENGE_FAILED - UPSTREAM_UNAVAILABLE - INTERNAL_ERROR - CLIENT_TOO_OLD - IDEMPOTENCY_KEY_CONFLICT errors: type: array items: type: object properties: path: type: string message: type: string required: - path - message additionalProperties: false traceId: type: string required: - type - title - status - code additionalProperties: false '429': description: RATE_LIMITED content: application/problem+json: schema: $schema: https://json-schema.org/draft/2020-12/schema type: object properties: type: type: string title: type: string status: type: integer minimum: 400 maximum: 599 detail: type: string code: type: string enum: - VALIDATION_FAILED - NOT_FOUND - RATE_LIMITED - CHALLENGE_FAILED - UPSTREAM_UNAVAILABLE - INTERNAL_ERROR - CLIENT_TOO_OLD - IDEMPOTENCY_KEY_CONFLICT errors: type: array items: type: object properties: path: type: string message: type: string required: - path - message additionalProperties: false traceId: type: string required: - type - title - status - code additionalProperties: false '500': description: INTERNAL_ERROR content: application/problem+json: schema: $schema: https://json-schema.org/draft/2020-12/schema type: object properties: type: type: string title: type: string status: type: integer minimum: 400 maximum: 599 detail: type: string code: type: string enum: - VALIDATION_FAILED - NOT_FOUND - RATE_LIMITED - CHALLENGE_FAILED - UPSTREAM_UNAVAILABLE - INTERNAL_ERROR - CLIENT_TOO_OLD - IDEMPOTENCY_KEY_CONFLICT errors: type: array items: type: object properties: path: type: string message: type: string required: - path - message additionalProperties: false traceId: type: string required: - type - title - status - code additionalProperties: false '502': description: UPSTREAM_UNAVAILABLE content: application/problem+json: schema: $schema: https://json-schema.org/draft/2020-12/schema type: object properties: type: type: string title: type: string status: type: integer minimum: 400 maximum: 599 detail: type: string code: type: string enum: - VALIDATION_FAILED - NOT_FOUND - RATE_LIMITED - CHALLENGE_FAILED - UPSTREAM_UNAVAILABLE - INTERNAL_ERROR - CLIENT_TOO_OLD - IDEMPOTENCY_KEY_CONFLICT errors: type: array items: type: object properties: path: type: string message: type: string required: - path - message additionalProperties: false traceId: type: string required: - type - title - status - code additionalProperties: false x-cache: maxAge: 60 staleWhileRevalidate: 60