card.bsnk.me API Documentation
To get it out of the way to start with: This API can be used for whatever you want :). That said, if you’re likely to be a large consumer, I’d appreciate a heads up.
For ALL.Net use, it is recommended to use this API both in the webui for card lookups and in the AiMeDB FeliCa lookup functions. If this API is used exclusively in the webui without AiMeDB integration issues can occur during lookup. If this is likely to be problematic, please get in touch.
Lookup a Card
POST /lookup
with{"card": "..."}
GET /card/{card}
{
type: "Card type",
errors: [
("Failed converter name", "Error message"),
...
],
ids: {
idType: "Card ID",
...
},
info: {
idType: {
Metadata
},
...
}
}
All card types are valid both as input and output. The following is the list of supported formats, in the order they are checked for detection. All input formats are case insensitive.
Card Type | Name | Input Format | Output Format |
---|---|---|---|
e004 |
Konami Old Card ID | 8 hex bytes, with or without spaces/colons, starting with E004 |
8 uppercase hex bytes, without spaces |
idm |
Felica IDm | 8 hex bytes, with or without spaces/colons | 8 uppercase hex bytes, without spaces |
idm_pmm |
Felica IDm+PMm | 16 hex bytes, with or without spaces/colons | 16 uppercase hex bytes, without spaces |
0008 |
Naive 0008-style Access Code | 20 numerical digits with or without spaces, starting with 00 |
20 numerical digits, without spaces |
sega |
SEGA Aime Access Code | 20 numerical digits with or without spaces, starting with 0 |
|
bng |
Banapass Access Code | 20 numerical digits with or without spaces, starting with 3 |
|
aicc |
Amusement IC Access Code | 20 numerical digits with or without spaces, starting with 5 |
|
konami |
Konami User ID | 16 characters | 16 uppercase characters, without spaces |
unknown |
Unknown | Anything else |
The following card types have additional metadata that will be present in the info
block.
bng
Metadata
Warning
Currently all fields return 0
{
rand_num: 0,
product: 0,
app: 0,
namco_id: 0,
bcd: 0,
}
sega
Metadata
{
type: "Card variant",
serial: 0, // Card serial number
}
aicc
Metadata
{
company: "Card issuer company name",
valid: false
}
{
company: "Card issuer company name",
valid: true,
serial: 0, // Card serial number
version: 0, // Access Code encoding version
}
idm
Metadata
Note
Depending on the generation of the card, additional information is contained within the IDm identifying the date and serial number of production. As this is not reliable, and I have not yet identified a reliable way to identify which IDm were generated using this scheme, this information is not currently exposed.
{
manufacturer: 0, // Card manufacturer. 11777 = 01:2E, for AICC
}
idm_pmm
Metadata
Consult the FeliCa documentation for specific details regarding the usage of this information, if required. The mobile flag is the only field that is typically worth using.
{
mobile: true/false,
rom_type: 0,
ic_type: 0,
ic: "FeliCa IC type name",
timings: {
service: 0.0,
resp_ser_sys: 0.0,
auth: 0.0,
read: 0.0,
write: 0.0,
reg_sep_cng: 0.0,
}
}
Identify a Card
POST /identify
with{"card": "..."}
{
type: "Card type",
canonical: "Card ID normalised to output format"
}
Normalise a Card for Network Use
GET /normalise/{type}:{card}
"normalised card ID"
The following values are supported for type
:
konami
: Normalise a card for use on any e-Amusement networksega
: Normalise a card for use on a legitimate SEGA network, or an ALL.Net network making use of this API for card conversionaqua
: Normalise a card for use on an Aqua-based networkmyth
: Normalise a card for use on Mythosart
: Normalise a card for use on an Artemis-based network
If an unsupported type
value is used, an HTTP 400 is returned with an empty body of ""
.
If card conversion fails, an HTTP 404 is returned with an empty body of ""
.