Pedigree

Documentation

Complete guide to using Pedigree for your racing pigeons. Learn how to effectively use all features.

Import & Export

Import pigeons from various sources and export your data.

Importing from MyPigeons

If your federation uses MyPigeons, connect your fancier account to import your pigeons.
The import tool provides the same filters as MyPigeons: filter by sex (cock/hen/youngster), status (active/injured/missing/inactive), year, country, organisation code, and ring number.
The tool clearly marks which pigeons already exist in your Pedigree database. Use the "Show new only" toggle to display only pigeons that haven't been imported yet.
When you re-import a pigeon that already exists, the system updates its data with the latest information from MyPigeons and links parent relationships if they weren't set before.
The import summary shows how many pigeons were newly imported vs. updated.
MyPigeons import preserves parent relationships, saving you time setting up pedigrees manually.

What comes with a pigeon from MyPigeons

Besides the ring number, sex, name and colour, an import also fills in two things you would otherwise have to add by hand:
  • Parents. Wherever MyPigeons knows the father or the mother, they are added to your loft and linked to the pigeon, so the pedigree starts building itself. A parent that you did not import as well arrives with nothing but its ring number, ready for you to complete. A father or mother you had already filled in is never replaced.
  • The photo. The pigeon's photo is copied into Pedigree and kept as your own, so it stays even if the photo later changes on MyPigeons. Only a pigeon that has no photo here yet gets one — a photo you uploaded yourself is never overwritten. Eye pictures and pedigree scans are not part of MyPigeons and always stay yours.
Parents added this way are ordinary pigeons in your loft — open them to complete their details or to build their own pedigree further. Each parent link also counts as one connection, which matters on a free account.

Universal Pedigree Format (pedigree.live)

The pedigree.live format is a universal data exchange standard for pigeon pedigrees. It enables seamless export and import of complete pedigree data between different pigeon management applications. Supported formats: JSON and XML.

Exporting Pedigrees

There are two ways to export a pigeon with its complete pedigree: the ⋮ menu next to the pigeon in your pigeon list, under "Sharing and Export", or the "Download Pedigree" menu on the pigeon's pedigree page.
You can customize the export with the following options:
  • Format: Choose between JSON (recommended) or XML
  • Generations: Select 1-5 generations of ancestors (up to 31 pigeons)
  • Include Images: Embed pigeon photos and uploaded pedigree scans as Base64 encoded data

Importing Pedigrees

To import a pedigree.live file, open Tools → Pigeon Import and click "Start Import" on the Universal Import card.
Upload your JSON or XML file and preview the pigeons before importing. The system will show you which pigeons will be created, updated, or skipped.
Photos, eye pictures and uploaded pedigree scans stored in the file are saved with the pigeon, so a pedigree keeps its images when it moves to another loft.
Existing pigeons (matched by ring number) will be updated with new data. Parent relationships are automatically established based on the file structure. The uploaded file may be up to 30 MB — if a 5-generation export with many images exceeds that, export fewer generations or turn images off.

Re-importing a File

Pigeons are matched by their ring number, so importing the same file twice never creates duplicates. Pigeons that are already in your loft are updated instead of added again.
What matters is that the file wins wherever it carries something. If you export a pigeon, change it afterwards and then import that same file again, the pigeon goes back to the way it was at the moment of the export:
  • Name, sex, breeder, colour, strain and notes are always taken from the file.
  • The pedigree text is replaced whenever the file contains one.
  • The photo, the eye picture and an uploaded pedigree scan are replaced by the ones stored in the file. The newer image is removed and cannot be brought back.
  • A pigeon you deleted in the meantime comes back as a new entry. Its earlier public sharing link is not restored, so anyone who saved that link will no longer reach it.
  • Verified results stay verified, because the file carries them together with the pedigree text. A line whose numbers were changed by hand in the file arrives as plain text, without the badge.
Treat an exported file as a restore point for the pigeons inside it. If you only want to add new pigeons, keep in mind that every pigeon already in your loft will be rolled back to its state at the time of the export — export a fresh file first if you are not sure.

What an Import Never Changes

Anything the file does not carry is left exactly as it is:
  • Pedigree text you wrote where the file has none — an empty text in the file never clears what you have written.
  • Photos, if the file was exported with "Include images" switched off.
  • Favourites, archived pigeons, status, categories and public sharing settings.
  • Race results, which are never part of a pedigree file.
  • Parent links you changed yourself. An import only fills in a father or mother that is still empty, so it will not undo a parent you replaced.

JSON Structure

The JSON format consists of three main sections: format metadata, fancier information, and an array of pigeons. Below is a complete example with 3 generations:
json
{
  "format": {
    "name": "pedigree.live",
    "version": "1.0",
    "exported_at": "2025-12-25T12:00:00Z",
    "generations": 3
  },
  "fancier": {
    "name": "Jan Novak",
    "country_code": "SK"
  },
  "pigeons": [
    {
      "position": 1,
      "ring": {
        "country_code": "SK",
        "year": 2023,
        "organisation_code": "0123",
        "ring_number": 1001
      },
      "data": {
        "name": "Champion",
        "is_hen": false,
        "color": "Blue Bar",
        "strain": "Janssen"
      },
      "parents": {
        "father_position": 2,
        "mother_position": 3
      }
    },
    {
      "position": 2,
      "ring": { ... },
      "data": { "is_hen": false },
      "parents": { "father_position": 4, "mother_position": 5 }
    },
    {
      "position": 3,
      "ring": { ... },
      "data": { "is_hen": true },
      "parents": { "father_position": 6, "mother_position": 7 }
    }
  ]
}

XML Structure

The XML format uses the namespace https://pedigree.live/schema/export/v1 and carries the same data as JSON:
xml
<?xml version="1.0" encoding="UTF-8"?>
<pedigree xmlns="https://pedigree.live/schema/export/v1">
  <format>
    <name>pedigree.live</name>
    <version>1.0</version>
    <exported_at>2025-12-25T12:00:00Z</exported_at>
    <generations>3</generations>
  </format>
  <fancier>
    <name>Jan Novak</name>
    <country_code>SK</country_code>
  </fancier>
  <pigeons>
    <pigeon position="1">
      <ring>
        <country_code>SK</country_code>
        <year>2023</year>
        <organisation_code>0123</organisation_code>
        <ring_number>1001</ring_number>
      </ring>
      <data>
        <name>Champion</name>
        <is_hen>false</is_hen>
        <color>Blue Bar</color>
        <strain>Janssen</strain>
      </data>
      <pedigree_text>
        <box background_color="#ffffff" border_color="#252525"/>
        <lines>
          <line text_color="#252525" bold="true">1st Ace Pigeon</line>
          <line text_color="#252525">Winner 500km</line>
        </lines>
      </pedigree_text>
      <images>
        <body mime_type="image/webp">BASE64...</body>
        <eye mime_type="image/webp">BASE64...</eye>
        <pedigree mime_type="image/webp">BASE64...</pedigree>
      </images>
      <parents>
        <father_position>2</father_position>
        <mother_position>3</mother_position>
      </parents>
    </pigeon>
  </pigeons>
</pedigree>

Field Reference

The file contains three main objects:
  • format: Contains name ("pedigree.live"), version ("1.0"), exported_at (ISO 8601), and generations count
  • fancier: Contains name (required) and country_code (optional, ISO 3166-1 alpha-2)
  • pigeons: Array of pigeon objects with position, ring, data, pedigree_text, images (body photo, eye picture and uploaded pedigree scan), and parents
  • pedigree_text: Either simple numbered lines (line1, line2, ...) or the richer box/lines structure an export writes, which also carries per-line colour and bold, italic and underline styling. Both are accepted on import.

Pigeon Object Structure

Each pigeon in the pigeons array has the following structure. Only position and ring fields are required:
json
{
  "position": 1,
  "ring": {
    "country_code": "SK",        // Required: ISO country code
    "year": 2023,                // Required: Birth year (4 digits)
    "organisation_code": "0123", // Optional: Club/org code (not used in NL, BE, etc.)
    "ring_number": 12345         // Required: Ring number
  },
  "data": {
    "name": "Champion",          // Optional: Pigeon name
    "is_hen": false,             // Optional: true=hen, false=cock
    "bred_by": "Breeder Name",   // Optional: Breeder
    "color": "Blue Bar",         // Optional: Plumage color
    "strain": "Janssen"          // Optional: Bloodline
  },
  "pedigree_text": {             // Optional: simple numbered lines ...
    "line1": "1st Ace Pigeon",
    "line2": "Winner 500km",
    "line3": ""
  },
  // ... or the styled form an export writes, also accepted on import:
  // "pedigree_text": {
  //   "box": { "background_color": "#ffffff", "border_color": "#252525" },
  //   "lines": [
  //     { "text": "1st Ace Pigeon", "text_color": "#252525", "bold": true }
  //   ]
  // },
  "images": {
    "body": {
      "data": "BASE64...",       // Base64 encoded image
      "mime_type": "image/webp"
    },
    "eye": {
      "data": "BASE64...",
      "mime_type": "image/webp"
    },
    "pedigree": {                // Optional: uploaded pedigree scan
      "data": "BASE64...",
      "mime_type": "image/webp"
    }
  },
  "parents": {
    "father_position": 2,        // Position of father in array
    "mother_position": 3         // Position of mother in array
  }
}

Position Mapping (Binary Tree)

Pigeons are identified by position numbers following a binary heap structure. Use the formula to calculate parent positions:
  • Position 1: Main pigeon (the subject of the pedigree)
  • Positions 2-3: Parents (father = 2, mother = 3)
  • Positions 4-7: Grandparents
  • Positions 8-15: Great-grandparents
  • Positions 16-31: Great-great-grandparents (5th generation)
text
                              [1] Main Pigeon
                                     │
                 ┌─────────────────────────────────────┐
                 │                                     │
            [2] Father                            [3] Mother
                 │                                     │
        ┌────────┴────────┐                 ┌──────────┴────────┐
        │                 │                 │                   │
   [4] P.GF          [5] P.GM          [6] M.GF            [7] M.GM
        │                 │                 │                   │
    ┌───┴───┐         ┌───┴───┐         ┌───┴───┐           ┌───┴───┐
   [8]     [9]      [10]    [11]      [12]    [13]        [14]    [15]
    │       │         │       │         │       │           │       │
 ┌──┴──┐ ┌──┴──┐   ┌──┴──┐ ┌──┴──┐   ┌──┴──┐ ┌──┴──┐     ┌──┴──┐ ┌──┴──┐
[16] [17][18][19] [20][21][22][23] [24][25][26][27]    [28][29][30][31]

Position Formula:
• Father position = n × 2
• Mother position = n × 2 + 1

Validation Rules

When importing, the following validation rules are applied:
  • format.name must be "pedigree.live" and format.version must be "1.0"
  • Each pigeon must have ring data: country_code, year, ring_number (required), organisation_code (optional for NL, BE, and other countries without org codes)
  • Parent positions must reference positions that exist in the file; a parent that is missing is simply not linked. Position 1 marks the main pigeon of the pedigree

PDF Export

Export pedigrees as professional PDF documents optimized for printing. The PDF output is designed to look identical to the online HTML pedigree preview, ensuring consistency between what you see on screen and what gets printed.
PDF format is ideal for printing pedigrees, creating physical archives, or sharing documents that need to maintain exact formatting.

JPG Export

Export pedigrees as JPG images optimized for online use. JPG format is perfect for sharing pedigrees on social media, online auctions, pigeon sales websites, and messaging apps where image format is preferred.
JPG images are lightweight and universally supported, making them ideal for online auctions, Facebook groups, and WhatsApp sharing.
Add father
You are looking for a cock (father)
Find pigeon
Country code
Year
Organisation code
Ring number
Pigeon name
Create new pigeon
Delete pigeon

Do you really want to delete this pigeon? This action cannot be reverted.

Edit pedigree text
Move pigeons to another fancier

All pigeons and breeding pairs of this fancier will be moved to the fancier you select. Nothing is copied and no pedigree links are lost.

Target fancier
Export Pedigree

Export this pigeon's pedigree in a universal format that can be imported into other applications.

Format
JSON Modern format, easy to read
XML Traditional format, wider compatibility
Generations
Include images Images will be embedded in the file as Base64 (larger file size)
Subscription Info

Your current connection usage across all fanciers.

Connections used 0 / 100
0 0% 100
Upgrade to premium for unlimited connections.