API use is limited to 25 per month on the free plan. Attempted calls after the free limit will return a 429 - Too many requests response. Subscribe to one of our pricing options for increased usage.
GET Request
curl -X GET "https://homespy.io/api/decode" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://homespy.io/api/decode');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Accept: application/json',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}');
$response = curl_exec($ch);
curl_close($ch);
use GuzzleHttp\Client;
$client = new Client();
$response = $client->get('https://homespy.io/api/decode', [
'headers' => [
'Authorization' => 'Bearer YOUR_API_TOKEN',
'Accept' => 'application/json',
'Content-Type' => 'application/json'
],
// 'body' => '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}',
'json' => [
'make' => 'YOUR_MAKE',
'serial' => 'YOUR_SERIAL',
'model' => 'YOUR_MODEL'
]
]);
fetch('https://homespy.io/api/decode', {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
// body: '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}',
body: JSON.stringify({
'make': 'YOUR_MAKE',
'serial': 'YOUR_SERIAL',
'model': 'YOUR_MODEL'
})
});
import axios from 'axios';
const response = await axios.get('https://homespy.io/api/decode', {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
// data: '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}',
data: {
'make': 'YOUR_MAKE',
'serial': 'YOUR_SERIAL',
'model': 'YOUR_MODEL'
}
});
import fetch from 'node-fetch';
fetch('https://homespy.io/api/decode', {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
// body: '{"make": "YOUR_MAKE", "serial": "YOUR_SERIAL", "model": "YOUR_MODEL"}',
body: JSON.stringify({
'make': 'YOUR_MAKE',
'serial': 'YOUR_SERIAL',
'model': 'YOUR_MODEL'
})
});
using System.Net.Http;
using System.Net.Http.Headers;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://homespy.io/api/decode");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Headers.Add("Accept", "application/json");
request.Content = new StringContent("{\"make\": \"YOUR_MAKE\", \"serial\": \"YOUR_SERIAL\", \"model\": \"YOUR_MODEL\"}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://homespy.io/api/decode"))
.method("GET", BodyPublishers.ofString("{\"make\": \"YOUR_MAKE\", \"serial\": \"YOUR_SERIAL\", \"model\": \"YOUR_MODEL\"}"))
.setHeader("Authorization", "Bearer YOUR_API_TOKEN")
.setHeader("Accept", "application/json")
.setHeader("Content-Type", "application/json")
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
# Already added when you pass json=
# 'Content-Type': 'application/json',
}
json_data = {
'make': 'YOUR_MAKE',
'serial': 'YOUR_SERIAL',
'model': 'YOUR_MODEL',
}
response = requests.get('https://homespy.io/api/decode', headers=headers, json=json_data)
import Foundation
let jsonData = [
"make": "YOUR_MAKE",
"serial": "YOUR_SERIAL",
"model": "YOUR_MODEL"
] as [String : Any]
let data = try! JSONSerialization.data(withJSONObject: jsonData, options: [])
// let data = "{\"make\": \"YOUR_MAKE\", \"serial\": \"YOUR_SERIAL\", \"model\": \"YOUR_MODEL\"}".data(using: .utf8)
let url = URL(string: "https://homespy.io/api/decode")!
let headers = [
"Authorization": "Bearer YOUR_API_TOKEN",
"Accept": "application/json",
"Content-Type": "application/json"
]
var request = URLRequest(url: url)
request.allHTTPHeaderFields = headers
request.httpBody = data as Data
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
Credentials and body are passed in the same call to the below endpoint.
GET https://homespy.io/api/decode
Credentials consist of your api token only. It can be sent in the 'Authorization' header as a bearer token, a parameter of multipart/form data or
appended to the request url.
If you are currently logged in, the examples below will automatically include your api token.
Setting the 'Accept' header to application/json will ensure you receive a proper Http response from the server. Standard Http response codes are returned with each request.
https://homespy.io/api/decode?api_token=YOUR_API_TOKEN
headers: {
"Content-Type" : "application/json",
"Authorization" : "Bearer YOUR_API_TOKEN",
"Accept" => "application/json",
}
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type : multipart/form-data",
"Accept : application/json"
]);
An example of a failed 401 failed authentication response.
{
"message": "Unauthenticated."
}
Basic Request: https://homespy.io/api/decode?api_token=YOUR_API_TOKEN&make={YOUR_MAKE}&serial={YOUR_SERIAL}&model={YOUR_MODEL}
serial - String | Required | Any Length
model - String | Required | Any Length
make - Enum | Required | Option Within List Below
The following is the list of allowed make parameters. Values will be formatted for consistency. Whirlpool, Whirl Pool and whirlpool will all format to WHIRLPOOL.
Alternatively you can use the Makes List APIs to keep values consistent.
AOSMITH
ADMIRAL
ALLIANCE
AMANA
AMERICANSTANDARD
AMERICANA
ASKO
BOSCH
BRADFORDWHITE
BRAVOS
BRYANT
CABRIO
CAFE
CALORIC
CARRIER
COLEMAN
COMFORTMAKER
CONQUEST
COOLERATOR
CROSLEY
CRYSTALTIPS
DACOR
DANBY
DUCANE
ELECTROLUX
ESTATE
FIRSTCO
FISHERANDPAYKEL
FRIGIDAIRE
GE
GAGGENAU
GIBSON
GLENWOOD
GOODMAN
HAIER
HAMPTONBAY
HARDWICK
HEIL
HISENSE
HOTPOINT
ICP
IMPERIAL
INGLIS
JANITROL
JENNAIR
JORDAN
KELVINATOR
KENMORE
KITCHENAID
LG
LENNOX
LITTON
MAGICCHEF
MAYCOR
MAYTAG
MENUMASTER
MODERNMAID
NEPTUNE
NORCOLD
NORDYNE
NORGE
NORTEK
PARTNERSPLUS
PAYNE
PEERLESS
PINNACLE
PREMIERE
PUREFIRE
RCA
RHEEM
ROPER
RUUD
SAMSUNG
SPEEDQUEEN
STATE
SUNRAY
TAPPAN
THERMADOR
TRANE
VIKING
VIZIO
WESTINGHOUSE
WHIRLPOOL
WHITEWESTINGHOUSE
YORK
All responses are in JSON format. A standard http response code is always returned. In the case of multiple possible manufacture dates, we provide a confidence score for each of the possible dates. The 'mostLikelyYear' property is our algorithm's determination of the manufacture date.
An example of a decode returning multiple possible dates. The confidence score is calculated based on our internal data for similiar models as well as externally sourced data. Some properties like 'details' will only be filled if there is appropriate data.
{
"result": {
"status": 200,
"message": "ok",
"decoded": {
"make": "WHIRLPOOL",
"model": "WDT730PAHZ0",
"serial": "F91720000",
"mostLikelyYear": 2019,
"details": {
"averageListedPrice": 829,
"type": "Dishwasher",
"color": "Stainless Steel",
"description": "24 Inch Fully Integrated Built-In Dishwasher with 15 Place Setting Capacity"
},
"yearOptions": {
"2019": {
"year": 2019,
"confidence": 80,
"fullDate": "2029-04-22T00:00:00.000000Z"
}
},
"responseTime": 0.9700009822845459
}
}
}
In some cases it is not possible to narrow down the date any further due to a lack of existing data for the parameters supplied. This often happens due to a mistyped model or serial number but also could be due to an obscure model number. The following is an example of a serial number decoded but lacking supporting model data to narrow down the options.
{
"result": {
"status": 200,
"message": "ok",
"decoded": {
"make": "GE",
"model": "PSSUUUII",
"serial": "MM499999",
"mostLikelyYear": null,
"details": [],
"yearOptions": {
"1995": {
"year": 1995,
"confidence": 33,
"fullDate": "2005-07-01T01:00:00.000000Z"
},
"2007": {
"year": 2007,
"confidence": 33,
"fullDate": "2007-07-01T01:00:00.000000Z"
},
"2019": {
"year": 2019,
"confidence": 33,
"fullDate": "2019-07-01T01:00:00.000000Z"
}
},
"responseTime": 1.2382619380950928
}
}
}
An example of a response returning a 400 error to the client due to the request missing parameters or supplying a non-supported make.
{
"result": {
"status": 400,
"message": "Missing parameter or make value not in expected list.",
"decoded": null
}
}
An example of a response returning a 429 error to the client due to the free daily calls being exhausted.
{
"result": {
"status": 429,
'message' => 'Free api calls exhausted. Setup a billing method for increased usage.',
"decoded": null
}
}
Select the appropriate make for the image you are uploading.
Request Using Raw Image
curl -X POST "https://homespy.io/api/ocr" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-F "make=YOUR_MAKE" \
-F "imageRaw=@pathToImage/image.png"
Request Using Encoded Image
curl -X POST "https://homespy.io/api/ocr" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"make": "YOUR_MAKE", "imageBase64": "YOUR_BASE64_ENCODED_IMAGE"}'
Request Using Raw Image
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://homespy.io/api/ocr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer X1EuyvggI26JpKJ4KzAFWTMh8sBtxV86e5ACK6kE4Zj3lIRBgvMJsjYTwq8B',
'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'make' => 'YOUR_MAKE',
'imageRaw' => new CURLFile('pathToImage/image.png'),
]);
$response = curl_exec($ch);
curl_close($ch);
Request Using Encoded Image
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://homespy.io/api/ocr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_TOKEN',
'Accept: application/json',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"make": "YOUR_MAKE", "imageBase64": "your_base64_encoded_image"}');
$response = curl_exec($ch);
curl_close($ch);
Request Using Raw Image
use GuzzleHttp\Client;
use GuzzleHttp\Psr7;
$client = new Client();
$response = $client->post('https://homespy.io/api/ocr', [
'headers' => [
'Authorization' => 'Bearer YOUR_API_TOKEN',
'Accept' => 'application/json'
],
'multipart' => [
[
'name' => 'make',
'contents' => 'YOUR_MAKE'
],
[
'name' => 'imageRaw',
'contents' => Psr7\Utils::tryFopen('pathToImage/image.png', 'r')
]
]
]);
Request Using Encoded Image
use GuzzleHttp\Client;
$client = new Client();
$response = $client->post('https://homespy.io/api/ocr', [
'headers' => [
'Authorization' => 'Bearer YOUR_API_TOKEN',
'Accept' => 'application/json',
'Content-Type' => 'application/json'
],
// 'body' => '{"make": "YOUR_MAKE", "imageBase64": "YOUR_BASE64_ENCODED_IMAGE"}',
'json' => [
'make' => 'FRIGIDAIRE',
'imageBase64' => 'YOUR_BASE64_ENCODED_IMAGE'
]
]);
Request Using Raw Image
const form = new FormData();
form.append('make', 'YOUR_MAKE');
form.append('imageRaw', File([''], 'pathToImage/image.png'));
fetch('https://homespy.io/api/ocr', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json'
},
body: form
});
Request Using Encoded Image
fetch('https://homespy.io/api/ocr', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
// body: '{"make": "FRIGIDAIRE", "imageBase64": "YOUR_BASE64_ENCODED_IMAGE"}',
body: JSON.stringify({
'make': 'FRIGIDAIRE',
'imageBase64': 'YOUR_BASE64_ENCODED_IMAGE'
})
});
POST Request With Raw Image
import axios from 'axios';
import FormData from 'form-data';
import * as fs from 'fs';
const form = new FormData();
form.append('make', 'YOUR_MAKE');
form.append('imageRaw', fs.readFileSync('pathToImage/image.png'), 'pathToImage/image.png');
const response = await axios.post(
'https://homespy.io/api/ocr',
form,
{
headers: {
...form.getHeaders(),
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json'
}
}
);
POST Request With Encoded Image
import axios from 'axios';
const response = await axios.post(
'https://homespy.io/api/ocr',
// '{"make": "FRIGIDAIRE", "imageBase64": "YOUR_BASE64_ENCODED_IMAGE"}',
{
'make': 'FRIGIDAIRE',
'imageBase64': 'YOUR_BASE64_ENCODED_IMAGE'
},
{
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}
);
Request Using Raw Image
using System.Net.Http;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://homespy.io/api/ocr");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Headers.Add("Accept", "application/json");
MultipartFormDataContent content = new MultipartFormDataContent();
content.Add(new StringContent("YOUR_MAKE"), "make");
content.Add(new ByteArrayContent(File.ReadAllBytes("pathToImage/image.png")), "imageRaw", Path.GetFileName("pathToImage/image.png"));
request.Content = content;
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Request Using Encoded Image
using System.Net.Http;
using System.Net.Http.Headers;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://homespy.io/api/ocr");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Headers.Add("Accept", "application/json");
request.Content = new StringContent("{\"make\": \"YOUR_MAKE\", \"imageBase64\": \"YOUR_BASE64_ENCODED_IMAGE\"}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Request Using Raw Image
import java.io.File;
import java.io.IOException;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("make", "YOUR_MAKE")
.addFormDataPart("imageRaw", RequestBody.create("", new File("pathToImage/image.png")))
.build();
Request request = new Request.Builder()
.url("https://homespy.io/api/ocr")
.post(requestBody)
.header("Authorization", "Bearer YOUR_API_TOKEN")
.header("Accept", "application/json")
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
response.body().string();
}
Request Using Encoded Image
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
OkHttpClient client = new OkHttpClient();
String requestBody = "{\"make\": \"YOUR_MAKE\", \"imageBase64\": \"YOUR_BASE64_ENCODED_IMAGE\"}";
Request request = new Request.Builder()
.url("https://homespy.io/api/ocr")
.post(requestBody)
.header("Authorization", "Bearer YOUR_API_TOKEN")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
response.body().string();
}
Request Using Raw Image
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
}
files = {
'make': (None, 'YOUR_MAKE'),
'imageRaw': open('pathToImage/image.png', 'rb'),
}
response = requests.post('https://homespy.io/api/ocr', headers=headers, files=files)
Request Using Encoded Image
import requests
headers = {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Accept': 'application/json',
# Already added when you pass json=
# 'Content-Type': 'application/json',
}
json_data = {
'make': 'YOUR_MAKE',
'imageBase64': 'YOUR_BASE64_ENCODED_IMAGE',
}
response = requests.post('https://homespy.io/api/ocr', headers=headers, json=json_data)
Request Using Raw Image
import Foundation
let url = URL(string: "https://homespy.io/api/ocr")!
let headers = [
"Authorization": "Bearer YOUR_API_TOKEN",
"Accept": "application/json"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
Request Using Encoded Image
import Foundation
let jsonData = [
"make": "YOUR_MAKE",
"imageBase64": "YOUR_BASE64_ENCODED_IMAGE"
] as [String : Any]
let data = try! JSONSerialization.data(withJSONObject: jsonData, options: [])
// let data = "{\"make\": \"YOUR_MAKE\", \"imageBase64\": \"YOUR_BASE64_ENCODED_IMAGE\"}".data(using: .utf8)
let url = URL(string: "https://homespy.io/api/ocr")!
let headers = [
"Authorization": "Bearer YOUR_API_TOKEN",
"Accept": "application/json",
"Content-Type": "application/json"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = data as Data
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
Credentials and body are passed in the same call to the below endpoint.
POST https://homespy.io/api/ocr
Credentials consist of your api token only. It can be sent in the 'Authorization' header as a bearer token, or as part of form data as a parameter called 'api_token'.
If you are currently logged in, the examples below will automatically include your api token.
Setting the 'Accept' header to application/json will ensure you receive a proper Http response from the server. Standard Http response codes are returned with each request.
headers: {
"Content-Type" : "application/json",
"Authorization" : "Bearer YOUR_API_TOKEN"
"Accept" => "application/json",
}
const form = new FormData();
form.append('api_token', 'YOUR_API_TOKEN');
An example of a response returning a http 401 failed failed authentication response.
{
"message": "Unauthenticated."
}
make - String | Option Within List Below | Required
imageBase64 - String | Base64 Encoded | Required If imageRaw Not Present
imageRaw - Image | .jpg, .jpeg, .png, .bmp, .gif, .svg, .webp | Required If imageBase64 Not Present
The following is the list of allowed make parameters. Values will be formatted for consistency.
Whirlpool, Whirl Pool and whirlpool will all format to WHIRLPOOL.
AOSMITH
ADMIRAL
ALLIANCE
AMANA
AMERICANSTANDARD
AMERICANA
ASKO
BOSCH
BRADFORDWHITE
BRAVOS
BRYANT
CABRIO
CAFE
CALORIC
CARRIER
COLEMAN
COMFORTMAKER
CONQUEST
COOLERATOR
CROSLEY
CRYSTALTIPS
DACOR
DANBY
DUCANE
ELECTROLUX
ESTATE
FIRSTCO
FISHERANDPAYKEL
FRIGIDAIRE
GE
GAGGENAU
GIBSON
GLENWOOD
GOODMAN
HAIER
HAMPTONBAY
HARDWICK
HEIL
HISENSE
HOTPOINT
ICP
IMPERIAL
INGLIS
JANITROL
JENNAIR
JORDAN
KELVINATOR
KENMORE
KITCHENAID
LG
LENNOX
LITTON
MAGICCHEF
MAYCOR
MAYTAG
MENUMASTER
MODERNMAID
NEPTUNE
NORCOLD
NORDYNE
NORGE
NORTEK
PARTNERSPLUS
PAYNE
PEERLESS
PINNACLE
PREMIERE
PUREFIRE
RCA
RHEEM
ROPER
RUUD
SAMSUNG
SPEEDQUEEN
STATE
SUNRAY
TAPPAN
THERMADOR
TRANE
VIKING
VIZIO
WESTINGHOUSE
WHIRLPOOL
WHITEWESTINGHOUSE
YORK
All responses are in JSON format and a standard http response code is always returned and included in the response body.
An example of a successful OCR response.
{
"result": {
"status": 200,
"message": "success",
"ocr": {
"serial": "LA11026776",
"model": "FRT21P5AQ1"
}
}
}
For many reasons the image data supplied is not of high enough quality for the serial or model number to be extracted. In these cases, neither the model or serial number could be determined with any confidence and the 'ocr' parameter will be null.
{
"result": {
"status": 200,
"message": "success",
"ocr": null
}
}
Occasionally only part of the data can be extracted. In these instances, the 'ocr' parameter will contain the extracted data and the unknown data will be set to null.
{
"result": {
"status": 200,
"message": "success",
"ocr": {
"serial": "LA11026776",
"model": null
}
}
}
The following endpoints do not require authentication and can be called as needed.
This endpoint returns an array of all currently supported makes.
This endpoint returns an array of all makes supported by OCR.
This endpoint returns a list of all makes with additional data. Each object has the following structure and properties:
"KITCHENAID": {
"apiName": "KITCHENAID", - Standardized name for homespy APIs
"formattedName": "Kitchen Aid", - Formatted name for display
"ocrAvailable": true - Make OCR availability
}
{
"makes": {
"WHIRLPOOL": {
"apiName": "WHIRLPOOL",
"formattedName": "Whirlpool",
"ocrAvailable": true
},
"FRIGIDAIRE": {
"apiName": "FRIGIDAIRE",
"formattedName": "Frigidaire",
"ocrAvailable": true
},
"BOSCH": {
"apiName": "BOSCH",
"formattedName": "Bosch",
"ocrAvailable": true
},
"GE": {
"apiName": "GE",
"formattedName": "GE (General Electric)",
"ocrAvailable": true
},
"SAMSUNG": {
"apiName": "SAMSUNG",
"formattedName": "Samsung",
"ocrAvailable": true
},
"LG": {
"apiName": "LG",
"formattedName": "LG",
"ocrAvailable": true
},
"KENMORE": {
"apiName": "KENMORE",
"formattedName": "Kenmore | Sears | Kenmore Elite",
"ocrAvailable": true
},
"CARRIER": {
"apiName": "CARRIER",
"formattedName": "Carrier",
"ocrAvailable": false
},
"LENNOX": {
"apiName": "LENNOX",
"formattedName": "Lennox",
"ocrAvailable": false
},
"KITCHENAID": {
"apiName": "KITCHENAID",
"formattedName": "Kitchen Aid",
"ocrAvailable": true
},
"MAYTAG": {
"apiName": "MAYTAG",
"formattedName": "Maytag",
"ocrAvailable": true
},
"AMANA": {
"apiName": "AMANA",
"formattedName": "Amana",
"ocrAvailable": true
},
"RHEEM": {
"apiName": "RHEEM",
"formattedName": "Rheem",
"ocrAvailable": false
},
"TRANE": {
"apiName": "TRANE",
"formattedName": "Trane",
"ocrAvailable": true
},
"COMFORTMAKER": {
"apiName": "COMFORTMAKER",
"formattedName": "Comfort Maker",
"ocrAvailable": false
},
"YORK": {
"apiName": "YORK",
"formattedName": "York",
"ocrAvailable": false
},
"PAYNE": {
"apiName": "PAYNE",
"formattedName": "Payne",
"ocrAvailable": false
},
"GOODMAN": {
"apiName": "GOODMAN",
"formattedName": "Goodman",
"ocrAvailable": false
},
"HEIL": {
"apiName": "HEIL",
"formattedName": "Heil",
"ocrAvailable": false
},
"PEERLESS": {
"apiName": "PEERLESS",
"formattedName": "Peerless",
"ocrAvailable": false
},
"PINNACLE": {
"apiName": "PINNACLE",
"formattedName": "Pinnacle",
"ocrAvailable": false
},
"PUREFIRE": {
"apiName": "PUREFIRE",
"formattedName": "Purefire",
"ocrAvailable": false
},
"JENNAIR": {
"apiName": "JENNAIR",
"formattedName": "Jenn Air",
"ocrAvailable": true
},
"DUCANE": {
"apiName": "DUCANE",
"formattedName": "Ducane",
"ocrAvailable": false
},
"RUUD": {
"apiName": "RUUD",
"formattedName": "Ruud",
"ocrAvailable": false
},
"VIKING": {
"apiName": "VIKING",
"formattedName": "Viking",
"ocrAvailable": false
},
"BRYANT": {
"apiName": "BRYANT",
"formattedName": "Bryant",
"ocrAvailable": false
},
"STATE": {
"apiName": "STATE",
"formattedName": "State",
"ocrAvailable": false
},
"ICP": {
"apiName": "ICP",
"formattedName": "ICP (International Comfort Products)",
"ocrAvailable": false
},
"NORDYNE": {
"apiName": "NORDYNE",
"formattedName": "Nordyne",
"ocrAvailable": false
},
"AOSMITH": {
"apiName": "AOSMITH",
"formattedName": "A O Smith",
"ocrAvailable": false
},
"BRADFORDWHITE": {
"apiName": "BRADFORDWHITE",
"formattedName": "Bradford White",
"ocrAvailable": false
},
"COLEMAN": {
"apiName": "COLEMAN",
"formattedName": "Coleman",
"ocrAvailable": false
},
"ELECTROLUX": {
"apiName": "ELECTROLUX",
"formattedName": "Electrolux",
"ocrAvailable": true
},
"HOTPOINT": {
"apiName": "HOTPOINT",
"formattedName": "Hotpoint",
"ocrAvailable": true
},
"ADMIRAL": {
"apiName": "ADMIRAL",
"formattedName": "Admiral",
"ocrAvailable": true
},
"BRAVOS": {
"apiName": "BRAVOS",
"formattedName": "Bravos",
"ocrAvailable": true
},
"CALORIC": {
"apiName": "CALORIC",
"formattedName": "Caloric",
"ocrAvailable": true
},
"CROSLEY": {
"apiName": "CROSLEY",
"formattedName": "Crosley",
"ocrAvailable": true
},
"GLENWOOD": {
"apiName": "GLENWOOD",
"formattedName": "Glenwood",
"ocrAvailable": true
},
"HARDWICK": {
"apiName": "HARDWICK",
"formattedName": "Hardwick",
"ocrAvailable": true
},
"IMPERIAL": {
"apiName": "IMPERIAL",
"formattedName": "Imperial",
"ocrAvailable": true
},
"MAYCOR": {
"apiName": "MAYCOR",
"formattedName": "Maycor",
"ocrAvailable": true
},
"MAGICCHEF": {
"apiName": "MAGICCHEF",
"formattedName": "Magic Chef",
"ocrAvailable": true
},
"MENUMASTER": {
"apiName": "MENUMASTER",
"formattedName": "Menumaster",
"ocrAvailable": true
},
"NEPTUNE": {
"apiName": "NEPTUNE",
"formattedName": "Neptune",
"ocrAvailable": true
},
"LITTON": {
"apiName": "LITTON",
"formattedName": "Litton",
"ocrAvailable": true
},
"MODERNMAID": {
"apiName": "MODERNMAID",
"formattedName": "Modern Maid",
"ocrAvailable": true
},
"NORGE": {
"apiName": "NORGE",
"formattedName": "Norge",
"ocrAvailable": true
},
"SPEEDQUEEN": {
"apiName": "SPEEDQUEEN",
"formattedName": "Speed Queen",
"ocrAvailable": true
},
"SUNRAY": {
"apiName": "SUNRAY",
"formattedName": "Sunray",
"ocrAvailable": true
},
"ROPER": {
"apiName": "ROPER",
"formattedName": "Roper",
"ocrAvailable": true
},
"ESTATE": {
"apiName": "ESTATE",
"formattedName": "Estate",
"ocrAvailable": true
},
"NORCOLD": {
"apiName": "NORCOLD",
"formattedName": "Norcold",
"ocrAvailable": true
},
"PARTNERSPLUS": {
"apiName": "PARTNERSPLUS",
"formattedName": "Partners Plus",
"ocrAvailable": true
},
"CONQUEST": {
"apiName": "CONQUEST",
"formattedName": "Conquest",
"ocrAvailable": true
},
"COOLERATOR": {
"apiName": "COOLERATOR",
"formattedName": "Coolerator",
"ocrAvailable": true
},
"CRYSTALTIPS": {
"apiName": "CRYSTALTIPS",
"formattedName": "Crystal Tips",
"ocrAvailable": true
},
"HAMPTONBAY": {
"apiName": "HAMPTONBAY",
"formattedName": "Hampton Bay",
"ocrAvailable": true
},
"JORDAN": {
"apiName": "JORDAN",
"formattedName": "Jordan",
"ocrAvailable": true
},
"RCA": {
"apiName": "RCA",
"formattedName": "RCA",
"ocrAvailable": true
},
"ASKO": {
"apiName": "ASKO",
"formattedName": "Asko",
"ocrAvailable": false
},
"DACOR": {
"apiName": "DACOR",
"formattedName": "Dacor",
"ocrAvailable": false
},
"PREMIERE": {
"apiName": "PREMIERE",
"formattedName": "Premiere",
"ocrAvailable": false
},
"THERMADOR": {
"apiName": "THERMADOR",
"formattedName": "Thermador",
"ocrAvailable": true
},
"TAPPAN": {
"apiName": "TAPPAN",
"formattedName": "Tappan",
"ocrAvailable": false
},
"AMERICANSTANDARD": {
"apiName": "AMERICANSTANDARD",
"formattedName": "American Standard",
"ocrAvailable": false
},
"FIRSTCO": {
"apiName": "FIRSTCO",
"formattedName": "First Co",
"ocrAvailable": false
},
"KELVINATOR": {
"apiName": "KELVINATOR",
"formattedName": "Kelvinator",
"ocrAvailable": false
},
"JANITROL": {
"apiName": "JANITROL",
"formattedName": "Janitrol",
"ocrAvailable": false
},
"FISHERANDPAYKEL": {
"apiName": "FISHERANDPAYKEL",
"formattedName": "Fisher & Paykel",
"ocrAvailable": false
},
"GIBSON": {
"apiName": "GIBSON",
"formattedName": "Gibson",
"ocrAvailable": true
},
"GAGGENAU": {
"apiName": "GAGGENAU",
"formattedName": "Gaggenau",
"ocrAvailable": true
},
"INGLIS": {
"apiName": "INGLIS",
"formattedName": "Inglis",
"ocrAvailable": true
},
"WHITEWESTINGHOUSE": {
"apiName": "WHITEWESTINGHOUSE",
"formattedName": "White Westinghouse",
"ocrAvailable": true
},
"WESTINGHOUSE": {
"apiName": "WESTINGHOUSE",
"formattedName": "Westinghouse",
"ocrAvailable": false
},
"NORTEK": {
"apiName": "NORTEK",
"formattedName": "Nortek",
"ocrAvailable": false
},
"CABRIO": {
"apiName": "CABRIO",
"formattedName": "Cabrio",
"ocrAvailable": true
},
"HISENSE": {
"apiName": "HISENSE",
"formattedName": "Hisense",
"ocrAvailable": false
},
"AMERICANA": {
"apiName": "AMERICANA",
"formattedName": "Americana",
"ocrAvailable": true
},
"ALLIANCE": {
"apiName": "ALLIANCE",
"formattedName": "Alliance Laundry",
"ocrAvailable": true
},
"DANBY": {
"apiName": "DANBY",
"formattedName": "Danby",
"ocrAvailable": true
},
"CAFE": {
"apiName": "CAFE",
"formattedName": "Cafe",
"ocrAvailable": true
},
"HAIER": {
"apiName": "HAIER",
"formattedName": "Haier",
"ocrAvailable": true
},
"VIZIO": {
"apiName": "VIZIO",
"formattedName": "Vizio",
"ocrAvailable": true
}
}
}
{
"makes": [
"LG",
"FRIGIDAIRE",
"GIBSON",
"WHITEWESTINGHOUSE",
"ELECTROLUX",
"GE",
"HOTPOINT",
"RCA",
"AMERICANA",
"CAFE",
"HAIER",
"SAMSUNG",
"WHIRLPOOL",
"KITCHENAID",
"MAYTAG",
"AMANA",
"JENNAIR",
"ADMIRAL",
"BRAVOS",
"CALORIC",
"CROSLEY",
"GLENWOOD",
"HARDWICK",
"IMPERIAL",
"INGLIS",
"MAYCOR",
"MAGICCHEF",
"MENUMASTER",
"NEPTUNE",
"LITTON",
"MODERNMAID",
"NORGE",
"SUNRAY",
"ROPER",
"ESTATE",
"NORCOLD",
"PARTNERSPLUS",
"CONQUEST",
"COOLERATOR",
"CRYSTALTIPS",
"HAMPTONBAY",
"JORDAN",
"CABRIO",
"SPEEDQUEEN",
"ALLIANCE",
"BOSCH",
"THERMADOR",
"GAGGENAU",
"KENMORE",
"VIZIO",
"DANBY",
"TRANE"
]
}
{
"makes": [
"WHIRLPOOL",
"FRIGIDAIRE",
"BOSCH",
"GE",
"SAMSUNG",
"LG",
"KENMORE",
"CARRIER",
"LENNOX",
"KITCHENAID",
"MAYTAG",
"AMANA",
"RHEEM",
"TRANE",
"COMFORTMAKER",
"YORK",
"PAYNE",
"GOODMAN",
"HEIL",
"PEERLESS",
"PINNACLE",
"PUREFIRE",
"JENNAIR",
"DUCANE",
"RUUD",
"VIKING",
"BRYANT",
"STATE",
"ICP",
"NORDYNE",
"AOSMITH",
"BRADFORDWHITE",
"COLEMAN",
"ELECTROLUX",
"HOTPOINT",
"ADMIRAL",
"BRAVOS",
"CALORIC",
"CROSLEY",
"GLENWOOD",
"HARDWICK",
"IMPERIAL",
"MAYCOR",
"MAGICCHEF",
"MENUMASTER",
"NEPTUNE",
"LITTON",
"MODERNMAID",
"NORGE",
"SPEEDQUEEN",
"SUNRAY",
"ROPER",
"ESTATE",
"NORCOLD",
"PARTNERSPLUS",
"CONQUEST",
"COOLERATOR",
"CRYSTALTIPS",
"HAMPTONBAY",
"JORDAN",
"RCA",
"ASKO",
"DACOR",
"PREMIERE",
"THERMADOR",
"TAPPAN",
"AMERICANSTANDARD",
"FIRSTCO",
"KELVINATOR",
"JANITROL",
"FISHERANDPAYKEL",
"GIBSON",
"GAGGENAU",
"INGLIS",
"WHITEWESTINGHOUSE",
"WESTINGHOUSE",
"NORTEK",
"CABRIO",
"HISENSE",
"AMERICANA",
"ALLIANCE",
"DANBY",
"CAFE",
"HAIER",
"VIZIO"
]
}
Copyright homespy.io 2024