{
  "openapi": "3.0.1",
  "info": {
    "title": "Tire Library API",
    "description": "REST API for the Tire Library tire catalog, vehicle fitments, and rebates.",
    "version": "1.0"
  },
  "paths": {
    "/api/v1/account/get": {
      "get": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/save-user": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveUserRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveUserRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/save-company": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "Email",
                  "Id",
                  "Name"
                ],
                "type": "object",
                "properties": {
                  "Id": {
                    "type": "integer",
                    "format": "int64"
                  },
                  "Name": {
                    "maxLength": 255,
                    "type": "string"
                  },
                  "Email": {
                    "maxLength": 255,
                    "type": "string",
                    "format": "email"
                  },
                  "Description": {
                    "type": "string"
                  },
                  "Logo": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "Id": {
                  "style": "form"
                },
                "Name": {
                  "style": "form"
                },
                "Email": {
                  "style": "form"
                },
                "Description": {
                  "style": "form"
                },
                "Logo": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/save-page": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePageRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePageRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SavePageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/account/pages": {
      "get": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserPages"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPages"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPages"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/save-access": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAccessRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAccessRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveAccessRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSnapshot"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/delete-user/{targetUserId}": {
      "delete": {
        "tags": [
          "Account"
        ],
        "parameters": [
          {
            "name": "targetUserId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/account/api-keys": {
      "get": {
        "tags": [
          "ApiKey"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "ApiKey"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/api-keys/{keyId}": {
      "delete": {
        "tags": [
          "ApiKey"
        ],
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/forgot-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/reset-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/verify/{userId}": {
      "post": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "expires",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "signature",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/resend-verification": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ResendVerificationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/invite-accept": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteAcceptRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteAcceptRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InviteAcceptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/csv-export/settings": {
      "get": {
        "tags": [
          "CsvExport"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "CsvExport"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CsvSettingsUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CsvSettingsUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CsvSettingsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/csv-export/makes": {
      "put": {
        "tags": [
          "CsvExport"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CsvMakesUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CsvMakesUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CsvMakesUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "CsvExport"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/csv-export/exports": {
      "get": {
        "tags": [
          "CsvExport"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/csv-export/exports/{id}/download": {
      "get": {
        "tags": [
          "CsvExport"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/csv-export/exports/{id}/retry-ftp": {
      "post": {
        "tags": [
          "CsvExport"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/import-status": {
      "get": {
        "tags": [
          "ImportStatus"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportJobStatus"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportJobStatus"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportJobStatus"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rebate": {
      "get": {
        "tags": [
          "Rebate"
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "global",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by_key",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by_order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "make_name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RebateListItemPagedResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebateListItemPagedResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebateListItemPagedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rebate/{id}": {
      "get": {
        "tags": [
          "Rebate"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RebateDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebateDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RebateDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/stripe/webhook": {
      "post": {
        "tags": [
          "StripeWebhook"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/subscription/checkout": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionInitiateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionInitiateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionInitiateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/subscription/manage": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionSessionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tires/{id}": {
      "get": {
        "tags": [
          "Tire"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "rebate_status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TireSizeDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireSizeDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireSizeDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tires/compare": {
      "get": {
        "tags": [
          "Tire"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireSizeDetail"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireSizeDetail"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireSizeDetail"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tires/compare-export": {
      "get": {
        "tags": [
          "Tire"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tire-categories": {
      "get": {
        "tags": [
          "TireCategory"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tire-makes": {
      "get": {
        "tags": [
          "TireMake"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireMakeRecord"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireMakeRecord"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TireMakeRecord"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tire-patterns": {
      "get": {
        "tags": [
          "TirePattern"
        ],
        "parameters": [
          {
            "name": "make_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TirePatternResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TirePatternResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TirePatternResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tire-patterns/catalog": {
      "get": {
        "tags": [
          "TirePattern"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "make_name",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude_category",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 24
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PatternCatalogResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatternCatalogResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatternCatalogResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tire-patterns/{id}": {
      "get": {
        "tags": [
          "TirePattern"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "rebate_status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TireModelDetail"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireModelDetail"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireModelDetail"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/scan/tire-size": {
      "post": {
        "tags": [
          "TireScan"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tires/search": {
      "get": {
        "tags": [
          "TireSearch"
        ],
        "parameters": [
          {
            "name": "width",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "aspect_ratio",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rim_size",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "load_rating",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "speed_rating",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exclude_category",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TireSearchResultPagedResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireSearchResultPagedResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireSearchResultPagedResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tires/catalog": {
      "get": {
        "tags": [
          "TireSearch"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "make_name",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "width",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "aspect_ratio",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "rim_size",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "speed_rating",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "load_rating",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "ply_rating",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "load_range",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "utqg",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "warranty",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "item_number",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "season",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "terrain",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "three_pmsf",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "run_flat",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "mud_and_snow",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "studdable",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "exclude_category",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TireCatalogResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireCatalogResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TireCatalogResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/vehicle/lookup": {
      "get": {
        "tags": [
          "Vehicle"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "make",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "model",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "trim",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FitmentLookupResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FitmentLookupResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FitmentLookupResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountSnapshot": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserAccountRecord"
          },
          "company": {
            "$ref": "#/components/schemas/CompanyRecord"
          },
          "company_users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyUserRecord"
            },
            "nullable": true
          },
          "has_active_subscription": {
            "type": "boolean"
          },
          "has_api_access": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyListItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "prefix": {
            "type": "string",
            "nullable": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rate_limit_override": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyListResponse": {
        "type": "object",
        "properties": {
          "keys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKeyListItem"
            },
            "nullable": true
          },
          "has_api_access": {
            "type": "boolean"
          },
          "is_trial": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "prefix": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CompanyRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "logo_url": {
            "type": "string",
            "nullable": true
          },
          "stripe_id": {
            "type": "string",
            "nullable": true
          },
          "pm_type": {
            "type": "string",
            "nullable": true
          },
          "pm_last_four": {
            "type": "string",
            "nullable": true
          },
          "trial_ends_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "subscription_type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CompanyUserRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "company_id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "can_access": {
            "type": "boolean"
          },
          "can_edit_company": {
            "type": "boolean"
          },
          "can_manage_users": {
            "type": "boolean"
          },
          "can_manage_billing": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CsvCadence": {
        "enum": [
          "daily",
          "weekly"
        ],
        "type": "string"
      },
      "CsvFtpProtocol": {
        "enum": [
          "ftp",
          "ftps"
        ],
        "type": "string"
      },
      "CsvMakesUpdateRequest": {
        "type": "object",
        "properties": {
          "selected_make_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CsvSettingsUpdateRequest": {
        "type": "object",
        "properties": {
          "cadence": {
            "$ref": "#/components/schemas/CsvCadence"
          },
          "ftp_host": {
            "type": "string",
            "nullable": true
          },
          "ftp_port": {
            "type": "integer",
            "format": "int32"
          },
          "ftp_username": {
            "type": "string",
            "nullable": true
          },
          "new_ftp_password": {
            "type": "string",
            "nullable": true
          },
          "ftp_remote_path": {
            "type": "string",
            "nullable": true
          },
          "ftp_protocol": {
            "$ref": "#/components/schemas/CsvFtpProtocol"
          },
          "selected_make_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FavoriteFilter": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "img": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "filter": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FitmentDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "string",
            "nullable": true
          },
          "width": {
            "type": "string",
            "nullable": true
          },
          "aspect_ratio": {
            "type": "string",
            "nullable": true
          },
          "rim_size": {
            "type": "string",
            "nullable": true
          },
          "load_rating": {
            "type": "string",
            "nullable": true
          },
          "speed_rating": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FitmentLookupResponse": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "nullable": true
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "fitments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FitmentDetail"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ForgotPasswordRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          }
        },
        "additionalProperties": false
      },
      "ImportJobStatus": {
        "type": "object",
        "properties": {
          "job_key": {
            "type": "string",
            "nullable": true
          },
          "last_started_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "last_succeeded_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "last_failed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "last_error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InviteAcceptRequest": {
        "required": [
          "email",
          "name",
          "password",
          "password_confirmation",
          "token"
        ],
        "type": "object",
        "properties": {
          "email": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "token": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "password": {
            "minLength": 8,
            "type": "string"
          },
          "password_confirmation": {
            "minLength": 1,
            "type": "string"
          },
          "timezone": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoginRequest": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          },
          "password": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "is_admin": {
            "type": "boolean"
          },
          "email_verified_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "requires_subscription": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PageLink": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "img": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PatternCatalogFacets": {
        "type": "object",
        "properties": {
          "make_name": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "category": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PatternCatalogResponse": {
        "type": "object",
        "properties": {
          "results": {
            "$ref": "#/components/schemas/PatternCatalogResultPagedResult"
          },
          "facets": {
            "$ref": "#/components/schemas/PatternCatalogFacets"
          }
        },
        "additionalProperties": false
      },
      "PatternCatalogResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "make_name": {
            "type": "string",
            "nullable": true
          },
          "make_image": {
            "type": "string",
            "nullable": true
          },
          "size_count": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PatternCatalogResultPagedResult": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PatternCatalogResult"
            },
            "nullable": true
          },
          "from": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "last_page": {
            "type": "integer",
            "format": "int32"
          },
          "per_page": {
            "type": "integer",
            "format": "int32"
          },
          "to": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RebateDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "image_horizontal_url": {
            "type": "string",
            "nullable": true
          },
          "image_preview_url": {
            "type": "string",
            "nullable": true
          },
          "form_url": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "format": "date"
          },
          "global": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "rebate_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RebateItemRecord"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RebateItemRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount_reason": {
            "type": "string",
            "nullable": true
          },
          "amount_two": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount_two_reason": {
            "type": "string",
            "nullable": true
          },
          "quantity_required": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantity_limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "spend_min": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "spend_max": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tire_patterns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RebateTireModelRecord"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RebateListItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "format": "date"
          },
          "global": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RebateListItemPagedResult": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RebateListItem"
            },
            "nullable": true
          },
          "from": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "last_page": {
            "type": "integer",
            "format": "int32"
          },
          "per_page": {
            "type": "integer",
            "format": "int32"
          },
          "to": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RebateTireModelRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterRequest": {
        "required": [
          "company_name",
          "email",
          "name",
          "password",
          "password_confirmation"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "company_name": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "email": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "format": "email"
          },
          "password": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string"
          },
          "password_confirmation": {
            "minLength": 1,
            "type": "string"
          },
          "timezone": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "terms": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ResendVerificationRequest": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          }
        },
        "additionalProperties": false
      },
      "ResetPasswordRequest": {
        "required": [
          "confirm_password",
          "email",
          "password",
          "token"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string",
            "format": "email"
          },
          "token": {
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "minLength": 1,
            "type": "string"
          },
          "confirm_password": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SaveAccessRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "name": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "format": "email",
            "nullable": true
          },
          "can_access": {
            "type": "boolean",
            "nullable": true
          },
          "can_edit_company": {
            "type": "boolean",
            "nullable": true
          },
          "can_manage_users": {
            "type": "boolean",
            "nullable": true
          },
          "can_manage_billing": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SavePageRequest": {
        "type": "object",
        "properties": {
          "pages": {
            "$ref": "#/components/schemas/UserPages"
          }
        },
        "additionalProperties": false
      },
      "SaveUserRequest": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "format": "email",
            "nullable": true
          },
          "timezone": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "pages": {
            "$ref": "#/components/schemas/UserPages"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionInitiateRequest": {
        "required": [
          "stripe_price"
        ],
        "type": "object",
        "properties": {
          "stripe_price": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionSessionResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireCatalogFacets": {
        "type": "object",
        "properties": {
          "make_name": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "width": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "aspect_ratio": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rim_size": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "speed_rating": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "load_rating": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ply_rating": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "load_range": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "utqg": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "warranty": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "season": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "terrain": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "category": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireCatalogResponse": {
        "type": "object",
        "properties": {
          "results": {
            "$ref": "#/components/schemas/TireSearchResultPagedResult"
          },
          "facets": {
            "$ref": "#/components/schemas/TireCatalogFacets"
          }
        },
        "additionalProperties": false
      },
      "TireMakeRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "dot_reg_url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireModelDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "image_360_url": {
            "type": "string",
            "nullable": true
          },
          "image_360_thumbnail_url": {
            "type": "string",
            "nullable": true
          },
          "video_url": {
            "type": "string",
            "nullable": true
          },
          "manufacturer_url": {
            "type": "string",
            "nullable": true
          },
          "benefits": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "string",
            "nullable": true
          },
          "three_pmsf": {
            "type": "boolean"
          },
          "tire_make": {
            "$ref": "#/components/schemas/TireMakeRecord"
          },
          "tire_sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TireSizeRecord"
            },
            "nullable": true
          },
          "rebates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TireModelRebateRecord"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireModelRebateRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "type": "string",
            "format": "date"
          },
          "global": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TirePatternResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "size_count": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TireSearchResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "item_number": {
            "type": "string",
            "nullable": true
          },
          "tire_model_id": {
            "type": "integer",
            "format": "int64"
          },
          "tire_make_id": {
            "type": "integer",
            "format": "int64"
          },
          "width": {
            "type": "string",
            "nullable": true
          },
          "aspect_ratio": {
            "type": "string",
            "nullable": true
          },
          "rim_size": {
            "type": "string",
            "nullable": true
          },
          "load_rating": {
            "type": "string",
            "nullable": true
          },
          "speed_rating": {
            "type": "string",
            "nullable": true
          },
          "warranty": {
            "type": "string",
            "nullable": true
          },
          "ply_rating": {
            "type": "string",
            "nullable": true
          },
          "load_range": {
            "type": "string",
            "nullable": true
          },
          "utqg": {
            "type": "string",
            "nullable": true
          },
          "tread_depth": {
            "type": "string",
            "nullable": true
          },
          "weight": {
            "type": "string",
            "nullable": true
          },
          "thumbnail_image": {
            "type": "string",
            "nullable": true
          },
          "make_name": {
            "type": "string",
            "nullable": true
          },
          "make_image": {
            "type": "string",
            "nullable": true
          },
          "model_name": {
            "type": "string",
            "nullable": true
          },
          "season": {
            "type": "string",
            "nullable": true
          },
          "terrain": {
            "type": "string",
            "nullable": true
          },
          "studdable": {
            "type": "boolean",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "three_pmsf": {
            "type": "boolean"
          },
          "run_flat": {
            "type": "boolean"
          },
          "mud_and_snow": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TireSearchResultPagedResult": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer",
            "format": "int32"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TireSearchResult"
            },
            "nullable": true
          },
          "from": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "last_page": {
            "type": "integer",
            "format": "int32"
          },
          "per_page": {
            "type": "integer",
            "format": "int32"
          },
          "to": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TireSizeDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "width": {
            "type": "string",
            "nullable": true
          },
          "aspect_ratio": {
            "type": "string",
            "nullable": true
          },
          "rim_size": {
            "type": "string",
            "nullable": true
          },
          "load_rating": {
            "type": "string",
            "nullable": true
          },
          "speed_rating": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "string",
            "nullable": true
          },
          "load_capacity_dual": {
            "type": "string",
            "nullable": true
          },
          "load_capacity_single": {
            "type": "string",
            "nullable": true
          },
          "max_inflation_pressure": {
            "type": "string",
            "nullable": true
          },
          "revolutions_per_mile": {
            "type": "string",
            "nullable": true
          },
          "rolling_circumference": {
            "type": "string",
            "nullable": true
          },
          "diameter_overall": {
            "type": "string",
            "nullable": true
          },
          "sidewall": {
            "type": "string",
            "nullable": true
          },
          "rim_approved_width": {
            "type": "string",
            "nullable": true
          },
          "rim_diameter_metric": {
            "type": "string",
            "nullable": true
          },
          "ply_rating": {
            "type": "string",
            "nullable": true
          },
          "load_range": {
            "type": "string",
            "nullable": true
          },
          "tread_depth": {
            "type": "string",
            "nullable": true
          },
          "utqg": {
            "type": "string",
            "nullable": true
          },
          "section_width": {
            "type": "string",
            "nullable": true
          },
          "weight": {
            "type": "string",
            "nullable": true
          },
          "warranty": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "season": {
            "type": "string",
            "nullable": true
          },
          "terrain": {
            "type": "string",
            "nullable": true
          },
          "studdable": {
            "type": "boolean",
            "nullable": true
          },
          "gm_code": {
            "type": "string",
            "nullable": true
          },
          "ean": {
            "type": "string",
            "nullable": true
          },
          "upc": {
            "type": "string",
            "nullable": true
          },
          "asin": {
            "type": "string",
            "nullable": true
          },
          "item_number": {
            "type": "string",
            "nullable": true
          },
          "three_pmsf": {
            "type": "boolean"
          },
          "run_flat": {
            "type": "boolean"
          },
          "mud_and_snow": {
            "type": "boolean"
          },
          "thumbnail_image": {
            "type": "string",
            "nullable": true
          },
          "angle_image": {
            "type": "string",
            "nullable": true
          },
          "front_image": {
            "type": "string",
            "nullable": true
          },
          "side_image": {
            "type": "string",
            "nullable": true
          },
          "side2_image": {
            "type": "string",
            "nullable": true
          },
          "image_0100": {
            "type": "string",
            "nullable": true
          },
          "image_0200": {
            "type": "string",
            "nullable": true
          },
          "image_0301": {
            "type": "string",
            "nullable": true
          },
          "image_0302": {
            "type": "string",
            "nullable": true
          },
          "tire_make": {
            "$ref": "#/components/schemas/TireSizeDetailMake"
          },
          "tire_model": {
            "$ref": "#/components/schemas/TireSizeDetailModel"
          },
          "rebates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TireModelRebateRecord"
            },
            "nullable": true
          },
          "fitments_grouped": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TireSizeDetailFitment"
                }
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireSizeDetailFitment": {
        "type": "object",
        "properties": {
          "trim": {
            "type": "string",
            "nullable": true
          },
          "years": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireSizeDetailMake": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "dot_reg_url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TireSizeDetailModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "image_url": {
            "type": "string",
            "nullable": true
          },
          "image_360_url": {
            "type": "string",
            "nullable": true
          },
          "image_360_thumbnail_url": {
            "type": "string",
            "nullable": true
          },
          "video_url": {
            "type": "string",
            "nullable": true
          },
          "manufacturer_url": {
            "type": "string",
            "nullable": true
          },
          "features": {
            "type": "string",
            "nullable": true
          },
          "benefits": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "three_pmsf": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TireSizeRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "item_number": {
            "type": "string",
            "nullable": true
          },
          "three_pmsf": {
            "type": "boolean"
          },
          "season": {
            "type": "string",
            "nullable": true
          },
          "terrain": {
            "type": "string",
            "nullable": true
          },
          "studdable": {
            "type": "boolean",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "run_flat": {
            "type": "boolean"
          },
          "mud_and_snow": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UserAccountRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "company_id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "timezone": {
            "type": "string",
            "nullable": true
          },
          "can_access": {
            "type": "boolean"
          },
          "can_edit_company": {
            "type": "boolean"
          },
          "can_manage_users": {
            "type": "boolean"
          },
          "can_manage_billing": {
            "type": "boolean"
          },
          "pages_json": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "$ref": "#/components/schemas/UserPages"
          }
        },
        "additionalProperties": false
      },
      "UserPages": {
        "type": "object",
        "properties": {
          "visited_tires": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageLink"
            },
            "nullable": true
          },
          "visited_vehicles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageLink"
            },
            "nullable": true
          },
          "favorite_tires": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageLink"
            },
            "nullable": true
          },
          "favorite_vehicles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageLink"
            },
            "nullable": true
          },
          "favorite_filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FavoriteFilter"
            },
            "nullable": true
          },
          "compare_ids": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "API key authentication via the x-api-key header. Use your company API key (tl_live_...).",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ]
}