Skip to content

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 network
  • sega: Normalise a card for use on a legitimate SEGA network, or an ALL.Net network making use of this API for card conversion
  • aqua: Normalise a card for use on an Aqua-based network
  • myth: Normalise a card for use on Mythos
  • art: 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 "".