HelpDatabase Reference › DNA_Kits

DNA_Kits Table

The DNA_Kits table is the unified, cross-service registry of DNA test kits known to the DNAGedcom Client. Each row represents one test kit at one testing company. It is the single place every gather looks up a kit, regardless of which service the kit belongs to.

This table supersedes the older per-service kit tables (such as Ancestry_Kit and FTDNA_Kit). Those tables are retained for backward compatibility, but new code registers and resolves kits through DNA_Kits. Every service’s parser — A*, FTDNA, GEDmatch, MyHeritage, and 23andMe — writes its kits here through a single shared insert routine.

Uniqueness: a unique index is enforced on (company, guid), so each company/kit pair appears only once. Re-running a gather upgrades the existing row in place rather than creating duplicates.

Column Reference

ColumnTypeDescription
Idint (PK)Auto-incrementing primary key. Used as the internal kit reference in joins from other tables.
companystringThe testing company the kit belongs to (for example A*, FTDNA, Gedmatch, MyHeritage, 23andMe).
guidstringThe service’s unique identifier for the kit. Part of the unique key with company.
namestringDisplay name of the kit (the tester’s name as shown by the service).
id2stringSecondary service identifier for the kit (usage varies by company; for some services this is the account/username the kit is tied to).
id3stringTertiary service identifier for the kit (usage varies by company; used in joins to encrypted-kit match tables for some services).
created_datestringWhen the kit row was first recorded.
rolestringThe viewer’s relationship to the kit. For A*, populated from the /dnaSubnav/tests endpoint with one of Subject, Admin, Editor, or Guest. Other services may populate this in the future; null means unknown.

How It’s Populated

All services register kits through a single shared insert routine. When a kit is first seen it is inserted; when seen again the existing row is updated in place. Updates are non-destructive: name, id2, id3, and role are only overwritten when the caller supplies a new value, so a later pass that lacks (for example) the role will not blank out a value an earlier pass already stored.

For A*, the role value is captured from the DNA subnav test list (/dnaSubnav/tests), which lists every kit the signed-in account can view along with its role.

Related Tables

  • DNA_Login — the companion cross-service credential registry; kits are gathered under a logged-in account stored there.
  • DNA_KitSummary — per-kit rollup of match, ICW, chromosome, surname, ancestor, and tree counts keyed by kit identifier.
  • Ancestry_Kit / FTDNA_Kit / MeAnd23W_Kit / GM_Kit — legacy per-service kit tables that DNA_Kits supersedes.