Skip to main content

Passport data API

Genesys offers two endpoints to retrieve passport data. Both accept the same filters but return data in different formats and with very different performance characteristics.

Best for bulk export

Use /acn/query for downloading large datasets. It can return up to 1,000,000 records per request, making it the fastest way to export passport data. Genesys holds over 4.5 million accession records, so you would need just a handful of paginated requests to fetch everything.

Use /acn/filter only when you need the full JSON response with all fields. It is limited to 1,000 records per request, which would require thousands of requests to download the entire dataset.

See the Authentication guide for details about authenticating your API calls.

/acn/query endpoint​

The /acn/query endpoint provides high-performance bulk export of accession passport data, supporting up to 1,000,000 records per request. It returns a CSV file containing the requested passport data. With over 4.5 million accession records in Genesys, a single request with l=1000000 can fetch roughly a quarter of the entire dataset.

Request URL​

https://api.genesys-pgr.org/api/v2/acn/query

Query parameters​

ParameterValueDescription
p0Page number (zero-indexed)
l100000Number of records returned per page (maximum: 1,000,000)
selectComma-separated listFields to include in the response

Select fields​

The select parameter accepts a comma-separated list of fields to include in the response. Each field uses the format <genesys field name>( <csv header alias>)?. The alias is optional and sets the column header in the CSV output.

Performance

Requesting only the fields you need improves response times significantly.

MCPD (CSV header)Genesys fieldDescription
INSTCODEinstituteCodeFAO WIEWS institute code
ACCENUMBaccessionNumberAccession number within the genebank
DOIdoiDigital Object Identifier assigned to the material
HISTORIChistoricHistoric accession flag
CURATIONcurationTypeCuration type
GENUStaxonomy.genusGenus name
SPECIEStaxonomy.speciesSpecies epithet
SPAUTHORtaxonomy.spAuthorSpecies authority
SUBTAXAtaxonomy.subtaxaSubtaxon
SUBTAUTHORtaxonomy.subtAuthorSubtaxon authority
GRIN_TAXON_IDtaxonomy.currentTaxonomySpecies.idGRIN taxonomy ID
GRIN_NAMEtaxonomy.currentTaxonomySpecies.nameGRIN taxonomy name
GRIN_AUTHORtaxonomy.currentTaxonomySpecies.nameAuthorityGRIN taxonomy authority
CROPNAMEcropNameCommon crop name
CROPCODEcrop.shortNameCrop code
SAMPSTATsampStatBiological status of accession
ACQDATEacquisitionDateAcquisition date
ACCENAMEaccessionNameAccession name
ORIGCTYorigCtyCountry of origin
COLLSITEcoll.collSiteLocation of collecting site
DECLATITUDElatitudeDecimal latitude
DECLONGITUDElongitudeDecimal longitude
COORDUNCERTcoordinateUncertaintyCoordinate uncertainty (m)
COORDDATUMcoordinateDatumCoordinate datum
GEOREFMETHgeoreferenceMethodGeoreferencing method
ELEVATIONelevationElevation (masl)
COLLDATEcoll.collDateCollecting date
COLLSRCcoll.collSrcCollecting/acquisition source
COLLNUMBcoll.collNumbCollecting number
COLLCODEcoll.collCodeCollecting institute code
COLLNAMEcoll.collNameCollecting institute name
COLLINSTADDRESScoll.collInstAddressCollecting institute address
COLLMISSIDcoll.collMissIdCollecting mission identifier
DONORCODEdonorCodeDonor institute code
DONORNAMEdonorNameDonor institute name
DONORNUMBdonorNumbDonor accession number
OTHERNUMBaliases.nameOther identifiers
BREDCODEbreederCodeBreeding institute code
BREDNAMEbreederNameBreeding institute name
ANCESTancestAncestral data
DUPLSITEduplSiteLocation of safety duplicates
STORAGEstorageType of germplasm storage
MLSSTATmlsStatusMLS status
ACCEURLacceUrlAccession URL
REMARKSremarksRemarks
DATAPROVIDERIDdataProviderIdData provider ID
PDCIpdci.scorePassdata Data Completeness Index score
UUIDuuidUniversally unique identifier
LASTMODIFIEDlastModifiedDateLast modified date

Examples​

To request only the institute code, accession number, coordinates, and sample status:

Without aliases, CSV headers use the Genesys field names:

select=instituteCode,accessionNumber,latitude,longitude,sampStat

With aliases, CSV headers use the MCPD names you specify:

select=instituteCode INSTCODE,accessionNumber ACCENUMB,latitude DECLATITUDE,longitude DECLONGITUDE,sampStat SAMPSTAT

Request headers​

HeaderValue
Content-Typeapplication/json
Accepttext/csv
AuthorizationBearer <access_token>

Request body​

Filters the results. Uses the same structure as the filter endpoint.

{
"crop": ["barley"],
"historic": false,
"institute": {
"code": ["LBN002"]
}
}

Example cURL request​

curl --location 'https://api.genesys-pgr.org/api/v2/acn/query?p=0&l=1000&select=instituteCode%20INSTCODE%2CaccessionNumber%20ACCENUMB' \
--header 'Accept: text/csv' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \
--data '{"crop": ["barley"], "historic": false, "institute": {"code": ["LBN002"]}}'

/acn/filter endpoint​

The /acn/filter endpoint returns accession data in JSON for the specified filters. With a maximum of 1,000 records per request, downloading the full dataset of 4.5+ million accessions would require thousands of requests and significant time.

Evaluate first!

Before you opt for this method, check if it provides any additional data that is not available in /acn/query. Use it only when you really need the missing information.

Request URL​

https://api.genesys-pgr.org/api/v2/acn/filter

Query parameters​

ParameterValueDescription
p0Page number (zero-indexed)
l1000Number of records returned (default: 100, maximum: 1,000)

Request headers​

HeaderValue
Content-Typeapplication/json
AuthorizationBearer <access_token>

Request body​

Filters the results. Uses the same structure as the query endpoint.

{
"crop": ["barley"],
"historic": false,
"institute": {
"code": ["LBN002"]
}
}

Example cURL request​

curl --location 'https://api.genesys-pgr.org/api/v2/acn/filter' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \
--data '{
"crop": ["barley"],
"historic": false,
"institute": {
"code": ["LBN002"]
}
}'

Response​

Returns a JSON object in the standard paginated format containing an array of AccessionDTO objects.


This guide was authored by Khadija Aouzal (ICARDA).