Scrabblecam exposes APIs for:
Caution: APIs are subject to strict rate limiting.
Contact me if you need to execute more requests.
Board state recognition API
Request example:
curl -F "file=@board.jpg" https://scrabblecam.com/process
Response syntax:
{
"status": "string",
"board": "string",
"message": "string"
}
Response elements:
status: OK
|
ERROR
board: String representing the board state, or
null if no board was found in the image. Board fields are separated by commas. Each row is separated by the "
|
" character. Blanks are represented by
?
. Split the string by "
|
" and then by "
,
" to get a 2D board representation.
message: Error message. Only present when
status=ERROR
.
Response example:
{
"status": "OK",
"board": ",,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,H,,,,,,,|,,,,,,,O,,,,,,,|,,,,,,,L,A,U,G,H,,,|,,,,C,A,L,L,,,,,,,|,,,,,,,Y,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,|,,,,,,,,,,,,,,"
}
Rack recognition API
Request example:
curl -F "file=@rack.jpg" https://scrabblecam.com/process_rack
Response syntax:
{
"status": "string",
"rack": "string"
}
Response elements:
status: OK
|
ERROR
rack: Rack letters separated by commas. Blanks are represented by
?
.
message: Error message. Only present when
status=ERROR
.
Response example:
{
"status": "OK",
"rack": "L,E,T,?,E,R,S"
}
Move generation API
Request parameters:
rack_str: Rack letters separated by commas. Use
?
for blanks.
board_str: String representing the board, as returned by the
board state recognition API.
lang: Game language. Allowed values:
EN|EN_NWL|FR|IT
.
Request example:
curl -G --data-urlencode "lang=EN"\
--data-urlencode "rack_str=L,E,T,?,E,R,S"\
--data-urlencode "board_str=,,,,,,,K,,,,,,M,I|,,,,L,O,G,O,,,W,S,Z,Y,|,,,,,,,N,O,C,A,,,,|,,,,,,,I,,,S,P,A,D,L|,,,,?,O,S,E,S,J,A,,,I,|,,,,,,,,E,,,L,,P,|,,,,,,W,,T,R,W,O,N,,L|,,,,,T,A,C,E,,,J,,,E|,,,,,,Z,,R,,H,E,B,A,N|,,,N,I,B,Y,,,,,,,,N|,,,A,,,,,,C,H,U,D,Z,I|,,,G,,,,,,,,F,,E,|,,Z,A,K,R,E,T,O,W,,A,,Z,|,,,D,,,,Y,,E,,C,P,A,M|Z,M,I,?,N,O,,S,,Z,,,,,U"\
https://scrabblecam.com/solve
Response syntax:
{
"status": "string",
"moves": [ "string" ]
}
Response elements:
status: OK
|
ERROR
moves: Array of up to 10, top scoring moves. Each move is a string of the following format: "
row,column,tiles,letters,score,orientation". Coordinates are zero-based. The
letters value is the same as tiles, except the blanks (
?
) are replaced with actual letters. The
orientation value can be
H
or
V
, and indicates whether the word is placed horizontally or vertically.
message: Error message. Only present when
status=ERROR
.
Response example:
{
"status": "OK",
"moves":[
"1,12,ZEAT?N,ZEATIN,34,V",
"1,12,ZEAL,ZEAL,28,V",
"1,12,ZEAS,ZEAS,28,V",
"1,12,Z?AL,ZEAL,26,V",
"1,12,Z?AS,ZEAS,26,V",
"13,3,DEELY,DEELY,25,H",
"0,0,STREEL,STREEL,25,H",
"1,12,ZEA?,ZEAL,25,V",
"1,12,ZEA?,ZEAS,25,V",
"1,12,ZEA,ZEA,24,V"
]
}