openapi: 3.2.0 info: title: mcpgate-backend Customer API version: 0.4.20 tags: - name: Customer paths: /admin/customer: post: tags: - Customer summary: Create Customer operationId: create_customer_admin_customer_post parameters: - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - Customer summary: List Customers operationId: list_customers_admin_customer_get parameters: - name: has_stripe in: query required: false schema: anyOf: - type: boolean - type: 'null' title: Has Stripe - name: limit in: query required: false schema: type: integer maximum: 200 minimum: 1 default: 50 title: Limit - name: offset in: query required: false schema: type: integer minimum: 0 default: 0 title: Offset - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerList' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /admin/customer/{customer_id}: get: tags: - Customer summary: Get Customer operationId: get_customer_admin_customer__customer_id__get parameters: - name: customer_id in: path required: true schema: type: string minLength: 1 maxLength: 64 title: Customer Id - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - Customer summary: Update Customer operationId: update_customer_admin_customer__customer_id__patch parameters: - name: customer_id in: path required: true schema: type: string minLength: 1 maxLength: 64 title: Customer Id - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CustomerOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: CustomerCreate: properties: display_name: type: string maxLength: 255 minLength: 1 title: Display Name contact_email: anyOf: - type: string format: email - type: 'null' title: Contact Email vat_id: anyOf: - type: string maxLength: 64 - type: 'null' title: Vat Id country: anyOf: - type: string maxLength: 2 minLength: 2 - type: 'null' title: Country stripe_customer_id: anyOf: - type: string maxLength: 64 - type: 'null' title: Stripe Customer Id notes: anyOf: - type: string maxLength: 2000 - type: 'null' title: Notes type: object required: - display_name title: CustomerCreate HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError CustomerOut: properties: id: type: string title: Id display_name: type: string title: Display Name contact_email: anyOf: - type: string - type: 'null' title: Contact Email vat_id: anyOf: - type: string - type: 'null' title: Vat Id country: anyOf: - type: string - type: 'null' title: Country stripe_customer_id: anyOf: - type: string - type: 'null' title: Stripe Customer Id created_at: type: string format: date-time title: Created At notes: anyOf: - type: string - type: 'null' title: Notes type: object required: - id - display_name - created_at title: CustomerOut CustomerUpdate: properties: display_name: anyOf: - type: string maxLength: 255 minLength: 1 - type: 'null' title: Display Name contact_email: anyOf: - type: string format: email - type: 'null' title: Contact Email vat_id: anyOf: - type: string maxLength: 64 - type: 'null' title: Vat Id country: anyOf: - type: string maxLength: 2 minLength: 2 - type: 'null' title: Country stripe_customer_id: anyOf: - type: string maxLength: 64 - type: 'null' title: Stripe Customer Id notes: anyOf: - type: string maxLength: 2000 - type: 'null' title: Notes type: object title: CustomerUpdate description: All fields optional — operator updates one at a time. CustomerList: properties: items: items: $ref: '#/components/schemas/CustomerOut' type: array title: Items total: type: integer title: Total type: object required: - items - total title: CustomerList ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError