@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Enterobase-API
@version v2.0
@auth basic
@endpoints 30
@hint download_for_search
@toc api(30)

@endpoint GET /api/v2.0
@desc Top level information about EnteroBase databases
@optional {description: any # Database description, prefix: any # Database prefix, e.g. SAL for Salmonella, name: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@returns(200) A info object
@errors {403: Unauthorised access for this specific resource or data}

@endpoint GET /api/v2.0/login
@desc Login endpoint, refresh your API token
@optional {password: any # EnteroBase Password, username: any # EnteroBase username}
@returns(200) A login object
@errors {403: Unauthorised access for this specific resource or data}

@endpoint GET /api/v2.0/lookup
@desc Generic endpoint for lookup list of barcodes
@optional {barcode: any # Unique barcode for records, __ e.g. SAL_AA0001AA_ST for a trace record}
@returns(200) List of lookup objects
@errors {403: Unauthorised access for this specific resource or data, 408: Connection timeout, please try again later.}

@endpoint GET /api/v2.0/lookup/{barcode}
@desc Generic endpoint for lookup of barcodes
@required {barcode: any # Unique barcode for records, __ e.g. SAL_AA0001AA_ST for a trace record}
@returns(200) A lookup object
@errors {403: Unauthorised access for this specific resource or data}

@endpoint POST /api/v2.0/lookup/{barcode}
@desc Generic endpoint for lookup of barcodes
@required {barcode: any # Unique barcode for records, __ e.g. SAL_AA0001AA_ST for a trace record}
@optional {body: map}
@returns(200) A lookup object
@errors {403: Unauthorised access for this specific resource or data}

@endpoint GET /api/v2.0/{database}/AMRdata
@desc AMR data
@required {database: any # Species database name e.g. senterica, ecoli, yersinia, mcatarrhalis}
@optional {offset: any # Cursor position in results, barcode: any # One or more barcodes for assemblies associated with AMR data records, e.g. SAL_AA0001AA_AS, only_fields: any, orderby: any # Field to order by. Default: barcode, limit: any # Number of results per page, sortorder: any # Order of search results: asc or desc}
@returns(200) List of AMRdata objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/AMRdata/{barcode}
@desc AMR data
@required {database: any # Species database name e.g. senterica, ecoli, yersinia, mcatarrhalis, barcode: any # One or more barcodes for assemblies associated with AMR data records, e.g. SAL_AA0001AA_AS}
@optional {body: map}
@returns(200) List of AMRdata objects
@errors {403: Unauthorised access for this specific resource}

@endpoint POST /api/v2.0/{database}/AMRdata/{barcode}
@desc AMR data
@required {database: any # Species database name e.g. senterica, ecoli, yersinia, mcatarrhalis, barcode: any # One or more barcodes for assemblies associated with AMR data records, e.g. SAL_AA0001AA_AS}
@optional {body: map}
@returns(200) List of AMRdata objects
@errors {403: Unauthorised access for this specific resource}

@endpoint PUT /api/v2.0/{database}/AMRdata/{barcode}
@desc AMR data
@required {database: any # Species database name e.g. senterica, ecoli, yersinia, mcatarrhalis, barcode: any # One or more barcodes for assemblies associated with AMR data records, e.g. SAL_AA0001AA_AS}
@optional {body: map}
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/assemblies
@desc Genome assemblies
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {offset: any # Cursor position in results, barcode: any # Unique barcode for Assembly records, __AS e.g. SAL_AA0001AA_AS, uberstrain: any, only_fields: any, orderby: any # Field to order by. Default: barcode, limit: any # Number of results per page, n50: any, version: any, top_species: any, assembly_status: any, reldate: any, sortorder: any # Order of search results: asc or desc}
@returns(200) List of assemblies objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/assemblies/{barcode}
@desc Genome assemblies
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Assembly records, __AS e.g. SAL_AA0001AA_AS}
@optional {body: map}
@returns(200) List of assemblies objects
@errors {403: Unauthorised access for this specific resource}

@endpoint POST /api/v2.0/{database}/assemblies/{barcode}
@desc Genome assemblies
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Assembly records, __AS e.g. SAL_AA0001AA_AS}
@optional {body: map}
@returns(200) List of assemblies objects
@errors {403: Unauthorised access for this specific resource}

@endpoint PUT /api/v2.0/{database}/assemblies/{barcode}
@desc Genome assemblies
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Assembly records, __AS e.g. SAL_AA0001AA_AS}
@optional {body: map}
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/schemes
@desc Genotyping schemes
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {offset: any # Cursor position in results, lastmodified: any, barcode: any # Unique barcode for Scheme records, e.g. SAW_AA0002AA_SC, only_fields: any, orderby: any # Field to order by. Default: barcode, scheme_name: any # Name of scheme, e.g. cgMLST_v2, limit: any # Number of results per page, label: any, version: any, created: any, sortorder: any # Order of search results: asc or desc}
@returns(200) List of schemes objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/schemes/{barcode}
@desc Genotyping schemes
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Scheme records, e.g. SAW_AA0002AA_SC}
@optional {body: map}
@returns(200) List of schemes objects
@errors {403: Unauthorised access for this specific resource}

@endpoint POST /api/v2.0/{database}/schemes/{barcode}
@desc Genotyping schemes
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Scheme records, e.g. SAW_AA0002AA_SC}
@optional {body: map}
@returns(200) List of schemes objects
@errors {403: Unauthorised access for this specific resource}

@endpoint PUT /api/v2.0/{database}/schemes/{barcode}
@desc Genotyping schemes
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Scheme records, e.g. SAW_AA0002AA_SC}
@optional {body: map}
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/straindata
@desc Strain data
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {sample_accession: any, collection_month: any, collection_time: any, continent: any, orderby: any # Field to order by. Default: barcode, strain_name: any, top_species: any, reldate: any, lab_contact: any, substrains: any, county: any, collection_year: any, country: any, uberstrain: any, latitude: any, email: any, my_strains: any, n50: any, region: any, source_type: any, offset: any # Cursor position in results, barcode: any # Unique barcode for Strain record, _ e.g. SAL_AA0001AA, postcode: any, serotype: any, version: any, comment: any, assembly_status: any, collection_date: any, sortorder: any # Order of search results: asc or desc, only_fields: any, source_details: any, secondary_sample_accession: any, longitude: any, limit: any # Number of results per page, city: any, custom_fields: any, source_niche: any}
@returns(200) List of straindata objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/strains
@desc Strain metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {sample_accession: any, collection_month: any, collection_time: any, continent: any, orderby: any # Field to order by. Default: barcode, strain_name: any, antigenic_formulas: any, reldate: any, lab_contact: any, substrains: any, county: any, collection_year: any, country: any, uberstrain: any, latitude: any, my_strains: any, region: any, return_all: any, source_type: any, offset: any # Cursor position in results, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA, postcode: any, assembly_barcode: any, serotype: any, version: any, comment: any, collection_date: any, sortorder: any # Order of search results: asc or desc, only_fields: any, source_details: any, secondary_sample_accession: any, longitude: any, limit: any # Number of results per page, city: any, source_niche: any}
@returns(200) List of strains objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/strains/{barcode}
@desc Strain metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA}
@optional {body: map}
@returns(200) List of strains objects
@errors {403: Unauthorised access for this specific resource}

@endpoint POST /api/v2.0/{database}/strains/{barcode}
@desc Strain metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA}
@optional {body: map}
@returns(200) List of strains objects
@errors {403: Unauthorised access for this specific resource}

@endpoint PUT /api/v2.0/{database}/strains/{barcode}
@desc Strain metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA}
@optional {body: map}
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/strainsversion
@desc Strain previous metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {sample_accession: any, collection_month: any, collection_time: any, continent: any, orderby: any # Field to order by. Default: barcode, strain_name: any, antigenic_formulas: any, reldate: any, lab_contact: any, substrains: any, county: any, collection_year: any, country: any, uberstrain: any, latitude: any, my_strains: any, region: any, return_all: any, source_type: any, offset: any # Cursor position in results, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA, postcode: any, assembly_barcode: any, serotype: any, version: any, comment: any, collection_date: any, sortorder: any # Order of search results: asc or desc, only_fields: any, source_details: any, secondary_sample_accession: any, longitude: any, limit: any # Number of results per page, city: any, source_niche: any}
@returns(200) List of strainsversion objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/traces
@desc Traces (sequence-reads) metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively}
@optional {offset: any # Cursor position in results, barcode: any # Unique barcode for Traces records, __TR e.g. SAL_AA0001AA_TR, only_fields: any, orderby: any # Field to order by. Default: barcode, limit: any # Number of results per page, sortorder: any # Order of search results: asc or desc}
@returns(200) List of traces objects
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/traces/{barcode}
@desc Traces (sequence-reads) metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Traces records, __TR e.g. SAL_AA0001AA_TR}
@optional {body: map}
@returns(200) List of traces objects
@errors {403: Unauthorised access for this specific resource}

@endpoint POST /api/v2.0/{database}/traces/{barcode}
@desc Traces (sequence-reads) metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Traces records, __TR e.g. SAL_AA0001AA_TR}
@optional {body: map}
@returns(200) List of traces objects
@errors {403: Unauthorised access for this specific resource}

@endpoint PUT /api/v2.0/{database}/traces/{barcode}
@desc Traces (sequence-reads) metadata
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, barcode: any # Unique barcode for Traces records, __TR e.g. SAL_AA0001AA_TR}
@optional {body: map}
@errors {403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/{scheme}/alleles
@desc Alleles  data
@required {locus: any, database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, scheme: any}
@optional {offset: any, seq: any, allele_id: any, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA, only_fields: any, limit: any, reldate: any}
@returns(200) List of alleles objects
@errors {400: Malformed request, contains an error, 403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/{scheme}/loci
@desc Loci
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, scheme: any}
@optional {offset: any, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA, scheme: any, only_fields: any, locus: any, limit: any, create_time: any}
@returns(200) List of loci objects
@errors {400: Malformed request, contains an error, 403: Unauthorised access for this specific resource}

@endpoint GET /api/v2.0/{database}/{scheme}/sts
@desc ST profile data
@required {database: any # Species database name (senterica, ecoli, yersinia, mcatarrhalis) for Salmonella, Escherichia, Yersinia, Moraxella respectively, scheme: any # Name of scheme, e.g. cgMLST_v2}
@optional {offset: any # Cursor position in results, barcode: any # Unique barcode for Strain records, _ e.g. SAL_AA0001AA, reldate: any, scheme: any # Name of scheme, e.g. cgMLST_v2, only_fields: any, st_id: any # One or more comma separated ST numbers, suggest limit to a maximum of 500, show_alleles: any, limit: any # Number of results per response - suggested maximum 500}
@returns(200) List of sts objects
@errors {400: Malformed request, contains an error, 403: Unauthorised access for this specific resource}

@end
