From 04d20978fedbe1e860660747131bebf0c8c7670f Mon Sep 17 00:00:00 2001 From: JoeSiu <38518793+JoeSiu@users.noreply.github.com> Date: Tue, 23 Apr 2024 17:51:15 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20JoeSiu/x?= =?UTF-8?q?eno-canto-api-ts@b2907b85caf2bbd5efc3967cb3db5ee93bd6533d=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/navigation.js | 2 +- assets/search.js | 2 +- ...eryNameDefinition.html => XCQueryKey.html} | 76 ++++---- ...ameDefinition.html => XCRecordingKey.html} | 90 ++++----- ...NameDefinition.html => XCResponseKey.html} | 20 +- functions/constructQueryUrl.html | 7 +- functions/convertJsonToXCResponse.html | 2 +- .../convertXCQueryOptionToSearchParams.html | 177 ----------------- ...convertXCQueryOptionToURLSearchParams.html | 178 +++++++++++++++++ functions/sanitizeQuery.html | 177 +++++++++++++++++ functions/search.html | 4 +- hierarchy.html | 174 +++++++++++++++++ index.html | 23 +-- interfaces/AdditionalConvertOption.html | 179 +++++++++++++++++ interfaces/AdditionalSearchOption.html | 181 ++++++++++++++++++ interfaces/AdditionalWrapperOption.html | 177 ----------------- interfaces/XCQueryOption.html | 72 +++---- interfaces/XCRecording.html | 78 ++++---- interfaces/XCResponse.html | 16 +- modules.html | 14 +- variables/BASE_URL.html | 2 +- 21 files changed, 1095 insertions(+), 556 deletions(-) rename enums/{XCQueryNameDefinition.html => XCQueryKey.html} (82%) rename enums/{XCRecordingNameDefinition.html => XCRecordingKey.html} (81%) rename enums/{XCResponseNameDefinition.html => XCResponseKey.html} (87%) delete mode 100644 functions/convertXCQueryOptionToSearchParams.html create mode 100644 functions/convertXCQueryOptionToURLSearchParams.html create mode 100644 functions/sanitizeQuery.html create mode 100644 hierarchy.html create mode 100644 interfaces/AdditionalConvertOption.html create mode 100644 interfaces/AdditionalSearchOption.html delete mode 100644 interfaces/AdditionalWrapperOption.html diff --git a/assets/navigation.js b/assets/navigation.js index f586748..ec5b722 100644 --- a/assets/navigation.js +++ b/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA4XR20rEMBAG4HfJdbGw6iK9Ww83snjYAwoiMqbTbbCdhEm6KOK7iy3ubtgkvZ5/vslMXr6Fw08nCvF89dghf91Bi9dYKVJOaRKZMOBqUQikrrV5MHRSu7YRmfhQVIri4ic7MBcoNZeKNmNuJJi2rdFkcZwO5eLyrCz7BDRPDMYg3xsfVuSQK5Bo80jWxyfnU+/h/Q0TqJdIU7uzRaBdfYwZThRVhnIKuZwtb97Wi/me2AIreG/Q5v81v/90ctAuNVnHnXT96mtu9k7Vkfy7hM2PQj44PfPBLbK7tZpWOrShx4ai47j3USu9RGBZPwBDaxNzEl2JkbaPhdihctT6+guceIry3AMAAA==" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA43SUUvDMBAH8O+S52Jh6pC+zeHLHKjdCoKIxPRmg+2l5NLhFL+7tNW2YUnmY/jf/Y5c8vTFDHwYlrDH5UMD+nALBxaxmpuCJQywqSgek7PCVCWL2LvEnCVX39GkOwWhdC7xzSlM07BCtUICDzKEfmOR59JIhbxcKtyDNnd1exw1iQb0jgug2FNr47PLuZPfANei+Jc+LQ3hv5sOmFZFmBpW7oGG/BTTL92r9HEIuV5sbl6ydD0Se64lfy2B4r/M7j+fTdqFQjK6Eaa7eqbL0dk1KNpNUHxUZIPzCxtsH3tFCrfKdUOLdZWexq2H2qosXfef4J5rXlFgVLgxMJg4SiM/oWt3DbAKQlA3zyl0yVHr8w+ozj5CRgQAAA==" \ No newline at end of file diff --git a/assets/search.js b/assets/search.js index 32d9a17..729bba6 100644 --- a/assets/search.js +++ b/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/enums/XCQueryNameDefinition.html b/enums/XCQueryKey.html similarity index 82% rename from enums/XCQueryNameDefinition.html rename to enums/XCQueryKey.html index 7637d51..06ca7c7 100644 --- a/enums/XCQueryNameDefinition.html +++ b/enums/XCQueryKey.html @@ -1,4 +1,4 @@ -XCQueryNameDefinition | xeno-canto-api-ts

Enumeration XCQueryNameDefinition

Represents the name definitions for the query options.

-

Enumeration Members

also: "also"
area: "area"
auto: "auto"
box: "box"
cnt: "cnt"
colmonth: "colmonth"
colyear: "colyear"
dvc: "dvc"
gen: "gen"
grp: "grp"
lan: "lan"
len: "len"
lic: "lic"
loc: "loc"
lon: "lon"
method: "method"
mic: "mic"
month: "month"
nr: "nr"
othertype: "othertype"
page: "page"
playback: "playback"
q: "q"
query: "query"
rec: "rec"
regnr: "regnr"
rmk: "rmk"
seen: "seen"
sex: "sex"
since: "since"
smp: "smp"
state: "state"
temp: "temp"
type: "type"
year: "year"

Generated using TypeDoc

Enumeration XCQueryKey

Represents the keys for the query options.

+

Enumeration Members

also: "also"
area: "area"
auto: "auto"
box: "box"
cnt: "cnt"
colmonth: "colmonth"
colyear: "colyear"
dvc: "dvc"
gen: "gen"
grp: "grp"
lan: "lan"
len: "len"
lic: "lic"
loc: "loc"
lon: "lon"
method: "method"
mic: "mic"
month: "month"
nr: "nr"
othertype: "othertype"
page: "page"
playback: "playback"
q: "q"
query: "query"
rec: "rec"
regnr: "regnr"
rmk: "rmk"
seen: "seen"
sex: "sex"
since: "since"
smp: "smp"
state: "state"
temp: "temp"
type: "type"
year: "year"

Generated using TypeDoc

Enumeration XCRecordingNameDefinition

Represents the name definitions for the recording options.

-

Enumeration Members

also: "also"
alt: "alt"
animalSeen: "animalSeen"
auto: "auto"
birdSeen: "birdSeen"
cnt: "cnt"
date: "date"
dvc: "dvc"
en: "en"
file: "file"
fileName: "fileName"
full: "full"
gen: "gen"
group: "group"
id: "id"
large: "large"
lat: "lat"
length: "length"
lic: "lic"
lng: "lng"
loc: "loc"
med: "med"
method: "method"
mic: "mic"
osci: "osci"
playbackUsed: "playbackUsed"
q: "q"
rec: "rec"
regnr: "regnr"
rmk: "rmk"
sex: "sex"
small: "small"
smp: "smp"
sono: "sono"
sp: "sp"
ssp: "ssp"
stage: "stage"
temp: "temp"
time: "time"
type: "type"
uploaded: "uploaded"
url: "url"

Generated using TypeDoc

Enumeration XCRecordingKey

Represents the keys for the recording options.

+

Enumeration Members

also: "also"
alt: "alt"
animalSeen: "animalSeen"
auto: "auto"
birdSeen: "birdSeen"
cnt: "cnt"
date: "date"
dvc: "dvc"
en: "en"
file: "file"
fileName: "fileName"
full: "full"
gen: "gen"
group: "group"
id: "id"
large: "large"
lat: "lat"
length: "length"
lic: "lic"
lng: "lng"
loc: "loc"
med: "med"
method: "method"
mic: "mic"
osci: "osci"
playbackUsed: "playbackUsed"
q: "q"
rec: "rec"
regnr: "regnr"
rmk: "rmk"
sex: "sex"
small: "small"
smp: "smp"
sono: "sono"
sp: "sp"
ssp: "ssp"
stage: "stage"
temp: "temp"
time: "time"
type: "type"
uploaded: "uploaded"
url: "url"

Generated using TypeDoc

Enumeration XCResponseNameDefinition

Represents the name definitions for the response options.

-

Enumeration Members

error: "error"
message: "message"
numPages: "numPages"
numRecordings: "numRecordings"
numSpecies: "numSpecies"
page: "page"
recordings: "recordings"

Generated using TypeDoc

Enumeration XCResponseKey

Represents the keys for the response options.

+

Enumeration Members

error: "error"
message: "message"
numPages: "numPages"
numRecordings: "numRecordings"
numSpecies: "numSpecies"
page: "page"
recordings: "recordings"

Generated using TypeDoc

Function constructQueryUrl

  • Constructs a query URL by appending the provided query string to the base URL and optionally including additional query options.

    +

    Function constructQueryUrl

    • Constructs a query URL by appending the provided query string to the base URL and optionally including additional query options.

      Parameters

      • baseUrl: string

        The base URL to which the query string will be appended.

        -
      • Optional options: XCQueryOption

        Optional additional query options.

        +
      • Optional options: XCQueryOption

        The XCQueryOption object to convert.

        +
      • Optional additionalOptions: AdditionalConvertOption

        Additional convert options.

      Returns URL | string

      The constructed query URL.

      -

    Generated using TypeDoc

    Function convertJsonToXCResponse

    • Takes a JSON object and converts it into an XCResponse object.

      Parameters

      • json: any

        The JSON object to be converted.

      Returns XCResponse

      The converted XCResponse object.

      -

    Generated using TypeDoc

    Function convertXCQueryOptionToSearchParams

    • Converts an XCQueryOption object to a required URL string parameter format. For example: "grp:"birds" cnt:"United States" method:"field recording""

      -

      Parameters

      Returns URLSearchParams

      The URLSearchParams object representing the XCQueryOption object.

      -

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/convertXCQueryOptionToURLSearchParams.html b/functions/convertXCQueryOptionToURLSearchParams.html new file mode 100644 index 0000000..ca1d8b7 --- /dev/null +++ b/functions/convertXCQueryOptionToURLSearchParams.html @@ -0,0 +1,178 @@ +convertXCQueryOptionToURLSearchParams | xeno-canto-api-ts

    Function convertXCQueryOptionToURLSearchParams

    • Converts an XCQueryOption object to a required URL string parameter format. For example: "grp:"birds" cnt:"United States" method:"field recording""

      +

      Parameters

      Returns URLSearchParams

      The URLSearchParams object representing the XCQueryOption object.

      +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/sanitizeQuery.html b/functions/sanitizeQuery.html new file mode 100644 index 0000000..a06475e --- /dev/null +++ b/functions/sanitizeQuery.html @@ -0,0 +1,177 @@ +sanitizeQuery | xeno-canto-api-ts

    Function sanitizeQuery

    • Remove whitespace from query, and remove special characters (e.g., quotes)

      +

      Parameters

      • query: string

        The query string to sanitize

        +

      Returns string

      The sanitized query string, or string "" if query is empty after processing

      +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/search.html b/functions/search.html index 6d39b61..d5cca18 100644 --- a/functions/search.html +++ b/functions/search.html @@ -158,9 +158,9 @@ }
    • Searches for a query via Fetch API and returns the response and XC response.

      Parameters

      Returns Promise<{
          rawResponse: Response;
          url: URL;
          xcResponse: XCResponse;
      }>

      A promise that resolves to an object containing the query URL, the response from fetch and a XCResponse object.

      -

    Generated using TypeDoc

    Generated using TypeDoc

    \ No newline at end of file diff --git a/index.html b/index.html index 3f9b612..fd54273 100644 --- a/index.html +++ b/index.html @@ -168,10 +168,10 @@
    import * as XenoCanto from "xeno-canto-api-ts";
     

    Simple Search

    You can pass a string query to the search method like this:

    -
    const result = await XenoCanto.search("Owl");
    // Do something with result +
    const result = await XenoCanto.search({ query: "Owl" });
    // Do something with result

    or

    -
    XenoCanto.search({query: "Owl"}).then((result) => {
    // Do something with result
    }); +
    XenoCanto.search({ query: "Owl" }).then((result) => {
    // Do something with result
    });

    If the search is successful, the search method will return an object with the following properties:

      @@ -180,30 +180,31 @@
    • xrResponse: An XCResponse object that contains the fetched data

    You can access the data like this:

    -
    console.log(result.rawResponse.status) //Response status code, e.g., 200
    console.log(result.xcResponse.numRecordings) // Total number of recordings
    console.log(result.xcResponse.recordings[0].file) // The first recording result's sound file download URL +
    console.log(result.rawResponse.status); //Response status code, e.g., 200
    console.log(result.xcResponse.numRecordings); // Total number of recordings
    console.log(result.xcResponse[XCResponseKey.numRecordings]); // Same as above, but use the defined enum as key
    console.log(result.xcResponse.recordings[0].file); // The first recording result's sound file download URL
    console.log(result.xcResponse[XCResponseKey.recordings][0][XCRecordingKey.file]); // Same as above, but use the defined enum as key

    Advanced Search

    You can pass a XCQueryOption object to the search method like this:

    -
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Eagle",
    grp: "birds",
    cnt: "United States",
    // ...
    };

    const result = await XenoCanto.search(options); +
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Eagle", // Required
    grp: "birds", // Optional
    cnt: "United States", // Optional
    // ...
    };

    const result = await XenoCanto.search(options);
    • Some of the XCQueryOption properties accepts operators such as =, >, < or -. For example, the recording length property len can accept 10, ">120" or "=19.8".
    • The options list can accept additional properties that are not specified in the current API documentation in case of future updates. Note that the API will disregard any non-existing query parmeters.

    Multiple Pages

    For results that have multiple pages, you can pass the page parameter to the search method:

    -
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Eagle",
    grp: "birds",
    cnt: "United States",
    // ...
    };

    // Begin initial search
    console.log("Fetching page 1...");
    const result = await XenoCanto.search(options);

    // Print first recording data from response
    console.log(result.xcResponse.recordings[0]);

    // Wait for 1 second (to prevent rate limit)
    await new Promise((resolve) => setTimeout(resolve, 1000));

    // Check if there are more pages
    const numPages = result.xcResponse.numPages;
    if (numPages > 1) {
    // Loop through rest of the pages
    for (let currentPage = 2; currentPage < numPages; currentPage++) {
    // Begin next search
    console.log(`Fetching page ${page}/${numPages}...`);
    const result = await XenoCanto.search({...options, page: currentPage}); // Here we pass the original query and options with a new page

    // Print first recording data from response
    console.log(result.xcResponse.recordings[0]);

    // Wait for 1 second (to prevent rate limit)
    await new Promise((resolve) => setTimeout(resolve, 1000));
    }
    } +
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Eagle",
    grp: "birds",
    cnt: "United States",
    // ...
    };

    // Begin initial search
    console.log("Fetching page 1...");
    const result = await XenoCanto.search(options);

    // Print first recording data from response
    console.log(result.xcResponse.recordings[0]);

    // Wait for 1 second (to prevent rate limit)
    await new Promise((resolve) => setTimeout(resolve, 1000));

    // Check if there are more pages
    const totalPages = result.xcResponse.numPages;
    if (numPages > 1) {
    // Loop through rest of the pages
    for (let currentPage = 2; currentPage < totalPages; currentPage++) {
    // Begin next search
    console.log(`Fetching page ${currentPage}/${totalPages}...`);
    const result = await XenoCanto.search({ ...options, page: currentPage }); // Here we pass the original query and options with a new page

    // Print first recording data from response
    console.log(result.xcResponse.recordings[0]);

    // Wait for 1 second (to prevent rate limit)
    await new Promise((resolve) => setTimeout(resolve, 1000));
    }
    }
    -

    Additional Options

    The wrapper also provides additional options by passing a AdditionalWrapperOption object to the search method

    +

    Additional Options

    The wrapper also provides additional options by passing a AdditionalSearchOption object to the search method

    Change API Base URL

    For development purpose, the Base URL can be changed as follows:

    -
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Owl"
    };
    const additionalOptions = {
    baseUrl: "https://run.mocky.io/v3/9f08db9a-cfba-4b1d-8c4a-765932f6cf3b", // A fake JSON server URL
    } as XenoCanto.AdditionalWrapperOption;

    const result = await XenoCanto.search(options, additionalOptions); +
    // Create options
    const options: XenoCanto.XCQueryOption = {
    query: "Owl",
    };
    const additionalOptions: XenoCanto.AdditionalSearchOption = {
    baseUrl: "https://run.mocky.io/v3/9f08db9a-cfba-4b1d-8c4a-765932f6cf3b", // A custom URL that will return a example JSON data
    };

    const result = await XenoCanto.search(options, additionalOptions);
    -

    Other Usages

    Custom Data Fetching

    If you wish to implement your own data retrieval methods instead of using the Fetch API, you can utilize the convertJsonToXCResponse method by passing the JSON response:

    -
    const xcResponse = XenoCanto.convertJsonToXCResponse(json);
    +

    Other Usages

    Custom Data Fetching

    If you wish to implement your own data retrieval methods instead of using the default Fetch API, you can utilize the constructQueryUrl and convertJsonToXCResponse methods:

    +
    const options: XenoCanto.XCQueryOption = {
    query: "Owl",
    };
    const customUrl = XenoCanto.constructQueryUrl("/custom-endpoint/", options); // This will returns string `/custom-endpoint/?query="Owl"`
    // Your implementation to retrieve the JSON data...
    const xcResponse = XenoCanto.convertJsonToXCResponse(json); // If the JSON format is correct, this will convert it to type `XCResponse` which has type hinting
    -

    Query Parameters Names

    To get the query parameters names / response JSON key names of the Xeno Canto API, you can use the XCQueryNameDefinition, XCResponseNameDefinition and XCRecordingNameDefinition enum, for example, XCQueryNameDefinition.rec will return the string rec.

    +

    Query Parameters / Response's Key Names

    To get the query parameters names / response JSON key names of the Xeno Canto API, you can use the XCQueryNameDefinition, XCResponseNameDefinition and XCRecordingNameDefinition enum, for example, XCQueryNameDefinition.recwill return the string rec.

    Limitation

    Due to the API limitation, only English queries are supported, and the query should based on scientific or common names. You may refer to the IOC World Bird List - Multilingual Version for looking up and mapping the corresponding names.

    Resources

    Please refer to the documentation for details and API references.

    To learn more about the Xeno Canto's query parmeters, see https://xeno-canto.org/explore/api and https://xeno-canto.org/help/search.

    -

Generated using TypeDoc

Interface AdditionalConvertOption

Represents additional options for general convert function.

+
interface AdditionalConvertOption {
    skipEmptyQueryCheck?: boolean;
    skipSanitizeQuery?: boolean;
}

Hierarchy (view full)

Properties

skipEmptyQueryCheck?: boolean

Don't throw an error if no query is provided.

+
skipSanitizeQuery?: boolean

Whether to skip the query string sanitization.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/interfaces/AdditionalSearchOption.html b/interfaces/AdditionalSearchOption.html new file mode 100644 index 0000000..8e368d5 --- /dev/null +++ b/interfaces/AdditionalSearchOption.html @@ -0,0 +1,181 @@ +AdditionalSearchOption | xeno-canto-api-ts

Interface AdditionalSearchOption

Represents additional options for the search function.

+
interface AdditionalSearchOption {
    baseUrl?: string;
    skipEmptyQueryCheck?: boolean;
    skipSanitizeQuery?: boolean;
}

Hierarchy (view full)

Properties

baseUrl?: string

Override the default BASE_URL.

+
skipEmptyQueryCheck?: boolean

Don't throw an error if no query is provided.

+
skipSanitizeQuery?: boolean

Whether to skip the query string sanitization.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/interfaces/AdditionalWrapperOption.html b/interfaces/AdditionalWrapperOption.html deleted file mode 100644 index 1dc425e..0000000 --- a/interfaces/AdditionalWrapperOption.html +++ /dev/null @@ -1,177 +0,0 @@ -AdditionalWrapperOption | xeno-canto-api-ts

Interface AdditionalWrapperOption

Represents additional options for the wrapper.

-
interface AdditionalWrapperOption {
    baseUrl?: string;
}

Properties

Properties

baseUrl?: string

Override the default BASE_URL.

-

Generated using TypeDoc

\ No newline at end of file diff --git a/interfaces/XCQueryOption.html b/interfaces/XCQueryOption.html index f6b3a20..966dc4f 100644 --- a/interfaces/XCQueryOption.html +++ b/interfaces/XCQueryOption.html @@ -158,7 +158,7 @@ }

Interface XCQueryOption

Represents the search options for querying.

interface XCQueryOption {
    also?: string;
    area?: string & {} | "africa" | "america" | "asia" | "australia" | "europe";
    auto?: string & {} | "yes" | "no";
    box?: string;
    cnt?: string;
    colmonth?: string;
    colyear?: string;
    dvc?: string;
    gen?: string;
    grp?: 0 | "soundscape" | "birds" | "grasshoppers" | "bats" | 1 | 2 | 3 | string & {};
    lan?: string | number;
    len?: string | number;
    lic?: string;
    loc?: string;
    lon?: string | number;
    method?: string & {} | "emerging from roost" | "field recording" | "fluorescent light tag" | "hand-release" | "in enclosure" | "in net" | "in the hand" | "roosting" | "roped" | "studio recording";
    mic?: string;
    month?: string | number;
    nr?: string | number;
    othertype?: string;
    page?: number;
    playback?: string & {} | "yes" | "no";
    q?: string;
    query: string;
    rec?: string;
    regnr?: string;
    rmk?: string;
    seen?: string & {} | "yes" | "no";
    sex?: string & {} | "female" | "male";
    since?: string;
    smp?: string | number;
    state?: string & {} | "adult" | "juvenile" | "nestling" | "nymph" | "subadult";
    temp?: string | number;
    type?: string & {} | "aberrant" | "alarm call" | "begging call" | "call" | "calling song" | "courtship song" | "dawn song" | "distress call" | "disturbance song" | "drumming" | "duet" | "echolocation" | "female song" | "flight call" | "flight song" | "imitation" | "nocturnal flight call" | "rivalry song" | "searching song" | "social call" | "song" | "subsong";
    year?: string | number;
    [rest: string]: number | string | undefined;
}

Indexable

[rest: string]: number | string | undefined

Any other custom tags not in the API for compatibility.

-

Properties

Properties

also? area? auto? box? @@ -195,29 +195,29 @@ year?

Properties

also?: string

Background species

To search for recordings that have a given species in the background, use the also tag. Use this field to search for both species (common names in English and scientific names) and families (scientific names). For example, also:formicariidae will return all recordings that have a member of the Antthrush family identified as a background voice.

-
area?: string & {} | "africa" | "america" | "asia" | "australia" | "europe"

Additional search tags

+
area?: string & {} | "africa" | "america" | "asia" | "australia" | "europe"

Additional search tags

The area tag allows you to search by world area. Valid values for this tag are africa, america, asia, australia, europe.

-
auto?: string & {} | "yes" | "no"

Additional search tags

+
auto?: string & {} | "yes" | "no"

Additional search tags

The auto tag searches for automatic (non-supervised) recordings. This tag accepts yes and no.

-
box?: string

Geographic coordinates

+
box?: string

Geographic coordinates

There are two sets of tags that can be used to search via geographic coordinates. The first set of tags is lat and lon. These tags can be used to search within one degree in either direction of the given coordinate, for instance: lat:-12.234 lon:-69.98. This field also accepts '<' and '>' operators; e.g. use lat:">66.5" to search for all recordings made above the Arctic Circle.

The second tag allows you to search for recordings that occur within a given rectangle, and is called box. It is more versatile than lat and lon, but is more awkward to type in manually, so we have made a map-based search tool to make things simpler. The general format of the box tag is as follows: box:LAT_MIN,LON_MIN,LAT_MAX,LON_MAX. Note that there must not be any spaces between the coordinates.

-
cnt?: string

Country

+
cnt?: string

Country

To return all recordings that were recorded in the a particular country, use the cnt tag. The following query will return all recordings from the country of "Brazil": cnt:brazil. This field uses a 'starts with' query and accepts a 'matches' operator.

-
colmonth?: string

Additional search tags

+
colmonth?: string

Additional search tags

The colyear and colmonth tags for collection date operate similarly, but these apply only to specific groups that are allowed to be recorded in a studio setting (currently grasshoppers only).

-
colyear?: string

Additional search tags

+
colyear?: string

Additional search tags

The colyear and colmonth tags for collection date operate similarly, but these apply only to specific groups that are allowed to be recorded in a studio setting (currently grasshoppers only).

-
dvc?: string

Additional search tags

+
dvc?: string

Additional search tags

Use the dvc (device) and mic (microphone) tags to search for specific recording equipment.

-
gen?: string

Genus/Subspecies

+
gen?: string

Genus/Subspecies

Genus is part of a species' scientific name, so it is searched by default when performing a basic search (as mentioned above). But you can use the gen tag to limit your search query only to the genus field. So gen:zonotrichia will find all recordings of sparrows in the genus Zonotrichia. Similarly, ssp can be used to search for subspecies. These fields use a 'starts with' rather than 'contains' query and accept a 'matches' operator.

-
grp?: 0 | "soundscape" | "birds" | "grasshoppers" | "bats" | 1 | 2 | 3 | string & {}

Group

+
grp?: 0 | "soundscape" | "birds" | "grasshoppers" | "bats" | 1 | 2 | 3 | string & {}

Group

Use the grp tag to narrow down your search to a specific group. This tag is particularly useful in combination with one of the other tags. Valid group values are birds, grasshoppers and bats. You can also use their respective ids (1 to 3), so grp:2 will restrict your search to grasshoppers. Soundscapes are a special case, as these recordings may include multiple groups. Use grp:soundscape or grp:0 to search these.

-
lan?: string | number

Geographic coordinates

+
lan?: string | number

Geographic coordinates

There are two sets of tags that can be used to search via geographic coordinates. The first set of tags is lat and lon. These tags can be used to search within one degree in either direction of the given coordinate, for instance: lat:-12.234 lon:-69.98. This field also accepts '<' and '>' operators; e.g. use lat:">66.5" to search for all recordings made above the Arctic Circle.

The second tag allows you to search for recordings that occur within a given rectangle, and is called box. It is more versatile than lat and lon, but is more awkward to type in manually, so we have made a map-based search tool to make things simpler. The general format of the box tag is as follows: box:LAT_MIN,LON_MIN,LAT_MAX,LON_MAX. Note that there must not be any spaces between the coordinates.

-
len?: string | number

Recording length

+
len?: string | number

Recording length

To search for recordings that match a certain length (in seconds), use the len tag. This field also accepts '<' , '>' and '=' operators. For example:

  • len:10 will return recordings with a duration of 10 seconds (with a margin of 1%, so actually between 9.9 and 10.1 seconds
  • @@ -226,29 +226,29 @@
  • len:">120" will return recordings longer than two minutes in length
  • len:"=19.8" will return recordings lasting exactly 19.8 seconds, dropping the default 1% margin.
-
lic?: string

Recording license

+
lic?: string

Recording license

Recordings on xeno-canto are licensed under a small number of different Creative Commons licenses. You can search for recordings that match specific license conditions using the lic tag. License conditions are Attribution (BY), NonCommercial (NC), ShareAlike (SA), NoDerivatives (ND) and Public Domain/copyright free (CC0). Conditions should be separated by a '-' character. For instance, to find recordings that are licensed under an Attribution-NonCommercial-ShareAlike license, use lic:BY-NC-SA; for "no rights reserved" recordings, use lic:PD. See the Creative Commons website for more details about the individual licenses.

-
loc?: string

Location

+
loc?: string

Location

To return all recordings from a specific location, use the loc tag. For example loc:tambopata. This field accepts a 'matches' operator.

-
lon?: string | number

Geographic coordinates

+
lon?: string | number

Geographic coordinates

There are two sets of tags that can be used to search via geographic coordinates. The first set of tags is lat and lon. These tags can be used to search within one degree in either direction of the given coordinate, for instance: lat:-12.234 lon:-69.98. This field also accepts '<' and '>' operators; e.g. use lat:">66.5" to search for all recordings made above the Arctic Circle.

The second tag allows you to search for recordings that occur within a given rectangle, and is called box. It is more versatile than lat and lon, but is more awkward to type in manually, so we have made a map-based search tool to make things simpler. The general format of the box tag is as follows: box:LAT_MIN,LON_MIN,LAT_MAX,LON_MAX. Note that there must not be any spaces between the coordinates.

-
method?: string & {} | "emerging from roost" | "field recording" | "fluorescent light tag" | "hand-release" | "in enclosure" | "in net" | "in the hand" | "roosting" | "roped" | "studio recording"

Recording method

+
method?: string & {} | "emerging from roost" | "field recording" | "fluorescent light tag" | "hand-release" | "in enclosure" | "in net" | "in the hand" | "roosting" | "roped" | "studio recording"

Recording method

The method tag accepts the following, group-dependent values: emerging from roost, field recording, fluorescent light tag, hand-release, in enclosure, in net, in the hand, roosting, roped, studio recording. Do not forget to enclose the term between double quotes! This tag always uses a 'matches' operator.

-
mic?: string

Additional search tags

+
mic?: string

Additional search tags

Use the dvc (device) and mic (microphone) tags to search for specific recording equipment.

-
month?: string | number

Additional search tags

+
month?: string | number

Additional search tags

The year and month tags allow you to search for recordings that were recorded on a certain date. The following query will find all recordings that were recorded in May of 2010: year:2010 month:5. Similarly, month:6 will find recordings that were recorded during the month of June in any year. Both tags also accept '>' (after) and '<' (before).

-
nr?: string | number

XC number

+
nr?: string | number

XC number

All recordings on xeno-canto are assigned a unique catalog number (generally displayed in the form XC76967). To search for a known recording number, use the nr tag: for example nr:76967. You can also search for a range of numbers as nr:88888-88890.

-
othertype?: string

Sound type

+
othertype?: string

Sound type

To search for recordings of a particular sound type, use the type tag. For instance, type:song will return all recordings identified as songs. Note that options may pertain to a specific group only, e.g. 'searching song' is a search term used for grasshoppers, but not for birds. Valid values for this tag are: aberrant, alarm call, begging call, call, calling song, courtship song, dawn song, distress call, disturbance song, drumming, duet, echolocation, female song, flight call, flight song, imitation, nocturnal flight call, rivalry song, searching song, social call, song, subsong. This tag always uses a 'matches' operator.

Up until 2022, the 'type' tag used to search a free text field. We have retained the option to search for non-standardized sound types by using the othertype tag. This tag also accepts a 'matches' operator, e.g. othertype:"=wing flapping".

-
page?: number

Page

+
page?: number

Page

The page parameter is optional and is only needed if the results from a given search don't fit in a single page. If specified, page must be an integer between 1 and XCResponse.numPages.

-
playback?: string & {} | "yes" | "no"

Animal seen/Playback used

+
playback?: string & {} | "yes" | "no"

Animal seen/Playback used

Two tags (seen and playback respectively) that previously were stored as part of Recordist remarks, but now can be used independently. Both only accept yes and no as input. For example, use seen:yes playback:no to search for recordings where the animal was seen, but not lured by playback.

-
q?: string

Recording quality

+
q?: string

Recording quality

Recordings are rated by quality. Quality ratings range from A (highest quality) to E (lowest quality). To search for recordings that match a certain quality rating, use the q tag. This field also accepts '<' and '>' operators. For example:

  • q:A will return recordings with a quality rating of A.
  • @@ -256,32 +256,32 @@
  • q:">C" will return recordings with a quality rating of B or A.

Note that not all recordings are rated. Unrated recordings will not be returned for a search on quality rating.

-
query: string

Query

+
query: string

Query

The query to search for.

-
rec?: string

Recordist

+
rec?: string

Recordist

To search for all recordings from a particular recordist, use the rec tag. For example, rec:John will return all recordings from recordists whose names contain the string "John". This field accepts a 'matches' operator.

-
regnr?: string

Additional search tags

+
regnr?: string

Additional search tags

The regnr tag can be used to search for animals that were sound recorded before ending up in a (museum) collection. This tag also accepts a 'matches' operator.

-
rmk?: string

Recordist remarks

+
rmk?: string

Recordist remarks

Many recordists leave remarks about the recording and this field can be searched using the rmk tag, e.g. rmk:flock. The remarks field contains free text, so it is unlikely to produce complete results. Note that information about whether the recorded animal was seen or if playback was used, formerly stored in remarks, now can be searched using dedicated fields! This field accepts a 'matches' operator.

-
seen?: string & {} | "yes" | "no"

Animal seen/Playback used

+
seen?: string & {} | "yes" | "no"

Animal seen/Playback used

Two tags (seen and playback respectively) that previously were stored as part of Recordist remarks, but now can be used independently. Both only accept yes and no as input. For example, use seen:yes playback:no to search for recordings where the animal was seen, but not lured by playback.

-
sex?: string & {} | "female" | "male"

Sex

+
sex?: string & {} | "female" | "male"

Sex

Formerly included under 'sound types', the sex tag can now be used independently. Valid values for this tag are: female, male. This tag always uses a 'matches' operator.

-
since?: string

Additional search tags

+
since?: string

Additional search tags

The since tag allows you to search for recordings that have been uploaded since a certain date. Using a simple integer value such as since:3 will find all recordings uploaded in the past 3 days. If you use a date with a format of YYYY-MM-DD, it will find all recordings uploaded since that date (e.g. since:2012-11-09). Note that this search considers the upload date, not the date that the recording was made.

-
smp?: string | number

Additional search tags

+
smp?: string | number

Additional search tags

The smp tag can be used to search for recordings with a specific sampling rate (in Hz). For example, smp:">48000" will return hi-res recordings. Other frequencies include 22050, 44100 and multiples of 48000.

-
state?: string & {} | "adult" | "juvenile" | "nestling" | "nymph" | "subadult"

Life stage

+
state?: string & {} | "adult" | "juvenile" | "nestling" | "nymph" | "subadult"

Life stage

Values of the stage tag were previously included under 'sound types' as well. Valid values are: adult, juvenile, nestling, nymph, subadult. This tag always uses a 'matches' operator.

-
temp?: string | number

Additional search tags

+
temp?: string | number

Additional search tags

The temp tag for temperature currently also applies only to grasshoppers. This field also accepts '<' and '>' operators. Use temp:25 to search for sounds recorded between 25-26 °C or temp:">20" for temperatures over 20 °C.

-
type?: string & {} | "aberrant" | "alarm call" | "begging call" | "call" | "calling song" | "courtship song" | "dawn song" | "distress call" | "disturbance song" | "drumming" | "duet" | "echolocation" | "female song" | "flight call" | "flight song" | "imitation" | "nocturnal flight call" | "rivalry song" | "searching song" | "social call" | "song" | "subsong"

Sound type

+
type?: string & {} | "aberrant" | "alarm call" | "begging call" | "call" | "calling song" | "courtship song" | "dawn song" | "distress call" | "disturbance song" | "drumming" | "duet" | "echolocation" | "female song" | "flight call" | "flight song" | "imitation" | "nocturnal flight call" | "rivalry song" | "searching song" | "social call" | "song" | "subsong"

Sound type

To search for recordings of a particular sound type, use the type tag. For instance, type:song will return all recordings identified as songs. Note that options may pertain to a specific group only, e.g. 'searching song' is a search term used for grasshoppers, but not for birds. Valid values for this tag are: aberrant, alarm call, begging call, call, calling song, courtship song, dawn song, distress call, disturbance song, drumming, duet, echolocation, female song, flight call, flight song, imitation, nocturnal flight call, rivalry song, searching song, social call, song, subsong. This tag always uses a 'matches' operator.

Up until 2022, the 'type' tag used to search a free text field. We have retained the option to search for non-standardized sound types by using the othertype tag. This tag also accepts a 'matches' operator, e.g. othertype:"=wing flapping".

-
year?: string | number

Additional search tags

+
year?: string | number

Additional search tags

The year and month tags allow you to search for recordings that were recorded on a certain date. The following query will find all recordings that were recorded in May of 2010: year:2010 month:5. Similarly, month:6 will find recordings that were recorded during the month of June in any year. Both tags also accept '>' (after) and '<' (before).

-

Generated using TypeDoc

Interface XCRecording

Represents a recording entity from the Xeno-Canto API response's "recordings" array.

-
interface XCRecording {
    also: string[];
    alt: string;
    animalSeen: string;
    auto: string;
    birdSeen: string;
    cnt: string;
    date: string;
    dvc: string;
    en: string;
    file: string;
    fileName: string;
    gen: string;
    group: string;
    id: string;
    lat: string;
    length: string;
    lic: string;
    lng: string;
    loc: string;
    method: string;
    mic: string;
    osci: {
        large: string;
        med: string;
        small: string;
    };
    playbackUsed: string;
    q: string;
    rec: string;
    regnr: string;
    rmk: string;
    sex: string;
    smp: number;
    sono: {
        full: string;
        large: string;
        med: string;
        small: string;
    };
    sp: string;
    ssp: string;
    stage: string;
    temp: string;
    time: string;
    type: string;
    uploaded: string;
    url: string;
}

Properties

interface XCRecording {
    also: string[];
    alt: string;
    animalSeen: string;
    auto: string;
    birdSeen: string;
    cnt: string;
    date: string;
    dvc: string;
    en: string;
    file: string;
    fileName: string;
    gen: string;
    group: string;
    id: string;
    lat: string;
    length: string;
    lic: string;
    lng: string;
    loc: string;
    method: string;
    mic: string;
    osci: {
        large: string;
        med: string;
        small: string;
    };
    playbackUsed: string;
    q: string;
    rec: string;
    regnr: string;
    rmk: string;
    sex: string;
    smp: number;
    sono: {
        full: string;
        large: string;
        med: string;
        small: string;
    };
    sp: string;
    ssp: string;
    stage: string;
    temp: string;
    time: string;
    type: string;
    uploaded: string;
    url: string;
}

Properties

also alt animalSeen auto @@ -196,44 +196,44 @@ uploaded url

Properties

also: string[]

An array with the identified background species in the recording.

-
alt: string

Elevation (in meter).

-
animalSeen: string

Was the recorded animal seen.

-
auto: string

Automatic (non-supervised) recording.

-
birdSeen: string

Indicates whether the recorded animal was seen.

-
cnt: string

The country where the recording was made.

-
date: string

The date that the recording was made.

-
dvc: string

Recording device used.

-
en: string

The English name of the species.

-
file: string

The URL to the audio file.

-
fileName: string

The original file name of the audio file.

-
gen: string

The generic name of the species.

-
group: string

The group to which the species belongs (birds, grasshoppers, bats).

-
id: string

The catalogue number of the recording on xeno-canto.

-
lat: string

The latitude of the recording in decimal coordinates.

-
length: string

The length of the recording in minutes.

-
lic: string

The URL describing the license of this recording.

-
lng: string

The longitude of the recording in decimal coordinates.

-
loc: string

The name of the locality.

-
method: string

The recording method (field recording, in the hand, etc.).

-
mic: string

Microphone used.

-
osci: {
    large: string;
    med: string;
    small: string;
}

An object with the URLs to the three versions of oscillograms.

-

Type declaration

  • large: string
  • med: string
  • small: string
playbackUsed: string

Was playback used to lure the animal.

-
q: string

The current quality rating for the recording.

-
rec: string

The name of the recordist.

-
regnr: string

Registration number of specimen (when collected).

-
rmk: string

Additional remarks by the recordist.

-
sex: string

The sex of the animal.

-
smp: number

Sample rate.

-
sono: {
    full: string;
    large: string;
    med: string;
    small: string;
}

An object with the URLs to the four versions of sonograms.

-

Type declaration

  • full: string
  • large: string
  • med: string
  • small: string
sp: string

The specific name (epithet) of the species.

-
ssp: string

The subspecies name (subspecific epithet).

-
stage: string

The life stage of the animal (adult, juvenile, etc.).

-
temp: string

Temperature during recording (applicable to specific groups only).

-
time: string

The time of day that the recording was made.

-
type: string

The sound type of the recording (combining both predefined terms such as 'call' or 'song' and additional free text options).

-
uploaded: string

The date that the recording was uploaded to xeno-canto.

-
url: string

The URL specifying the details of this recording.

-

Generated using TypeDoc

Interface XCResponse

Represents the response object returned by the Xeno-Canto API.

-
interface XCResponse {
    error?: string;
    message?: string;
    numPages: number;
    numRecordings: number;
    numSpecies: number;
    page: number;
    recordings: XCRecording[];
}

Properties

interface XCResponse {
    error?: string;
    message?: string;
    numPages: number;
    numRecordings: number;
    numSpecies: number;
    page: number;
    recordings: XCRecording[];
}

Properties

Properties

error?: string

Error type, if any.

-
message?: string

Error message, if any.

-
numPages: number

The total number of pages available for this query.

-
numRecordings: number

The total number of recordings found for this query.

-
numSpecies: number

The total number of species found for this query.

-
page: number

The page number of the results page that is being displayed.

-
recordings: XCRecording[]

An array of recording objects.

-

Generated using TypeDoc

xeno-canto-api-ts

Index

Enumerations

Interfaces

AdditionalWrapperOption +

Generated using TypeDoc

Variable BASE_URLConst

BASE_URL: "https://www.xeno-canto.org/api/2/recordings" = "https://www.xeno-canto.org/api/2/recordings"

Generated using TypeDoc

Variable BASE_URLConst

BASE_URL: "https://www.xeno-canto.org/api/2/recordings" = "https://www.xeno-canto.org/api/2/recordings"

Generated using TypeDoc