BirdWeather API

Welcome to the documentation for the BirdWeather GraphQL API.

Contact

Tim Clark
tim.clark@scribelabs.com

API Endpoints
BirdWeather GraphQL Server:
https://app.birdweather.com/graphql

Queries

birdnetSightings

Returns a SightingConnection!

Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.
limit - Int Maximum number of results to return
offset - Int Initial offset of first result
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates

Example

Query
query birdnetSightings($after: String, $before: String, $first: Int, $last: Int, $limit: Int, $offset: Int, $period: InputDuration, $speciesId: ID, $ne: InputLocation, $sw: InputLocation) {
  birdnetSightings(after: $after, before: $before, first: $first, last: $last, limit: $limit, offset: $offset, period: $period, speciesId: $speciesId, ne: $ne, sw: $sw) {
    edges {
      ...SightingEdgeFragment
    }
    nodes {
      ...SightingFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 987,
  "limit": 987,
  "offset": 987,
  "period": InputDuration,
  "speciesId": ID,
  "ne": InputLocation,
  "sw": InputLocation
}
Response
{
  "data": {
    "birdnetSightings": {
      "edges": [SightingEdge],
      "nodes": [Sighting],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

counts

Returns a Counts!

Name Description
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
scoreGt - Float Minimum (>) score
scoreLt - Float Maximum (<) score
scoreGte - Float Minimum (>=) score
scoreLte - Float Maximum (<=) score
confidenceGt - Float Minimum (>) confidence
confidenceLt - Float Maximum (<) confidence
confidenceGte - Float Minimum (>=) confidence
confidenceLte - Float Maximum (<=) confidence
probabilityGt - Float Minimum (>) probability
probabilityLt - Float Maximum (<) probability
probabilityGte - Float Minimum (>=) probability
probabilityLte - Float Maximum (<=) probability
timeOfDayGte - Int Minimum (>=) time of day
timeOfDayLte - Int Maximum (<=) time of day
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates

Example

Query
query counts($period: InputDuration, $speciesId: ID, $scoreGt: Float, $scoreLt: Float, $scoreGte: Float, $scoreLte: Float, $confidenceGt: Float, $confidenceLt: Float, $confidenceGte: Float, $confidenceLte: Float, $probabilityGt: Float, $probabilityLt: Float, $probabilityGte: Float, $probabilityLte: Float, $timeOfDayGte: Int, $timeOfDayLte: Int, $ne: InputLocation, $sw: InputLocation) {
  counts(period: $period, speciesId: $speciesId, scoreGt: $scoreGt, scoreLt: $scoreLt, scoreGte: $scoreGte, scoreLte: $scoreLte, confidenceGt: $confidenceGt, confidenceLt: $confidenceLt, confidenceGte: $confidenceGte, confidenceLte: $confidenceLte, probabilityGt: $probabilityGt, probabilityLt: $probabilityLt, probabilityGte: $probabilityGte, probabilityLte: $probabilityLte, timeOfDayGte: $timeOfDayGte, timeOfDayLte: $timeOfDayLte, ne: $ne, sw: $sw) {
    breakdown {
      ...CountsBreakdownFragment
    }
    detections
    species
    stations
  }
}
Variables
{
  "period": InputDuration,
  "speciesId": ID,
  "scoreGt": 987.65,
  "scoreLt": 123.45,
  "scoreGte": 987.65,
  "scoreLte": 987.65,
  "confidenceGt": 123.45,
  "confidenceLt": 123.45,
  "confidenceGte": 987.65,
  "confidenceLte": 123.45,
  "probabilityGt": 987.65,
  "probabilityLt": 987.65,
  "probabilityGte": 123.45,
  "probabilityLte": 987.65,
  "timeOfDayGte": 123,
  "timeOfDayLte": 123,
  "ne": InputLocation,
  "sw": InputLocation
}
Response
{
  "data": {
    "counts": {
      "breakdown": CountsBreakdown,
      "detections": 123,
      "species": 123,
      "stations": 987
    }
  }
}

detectionCounts

Returns [BinnedSpeciesCount!]!

Name Description
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
scoreGt - Float Minimum (>) score
scoreLt - Float Maximum (<) score
scoreGte - Float Minimum (>=) score
scoreLte - Float Maximum (<=) score
confidenceGt - Float Minimum (>) confidence
confidenceLt - Float Maximum (<) confidence
confidenceGte - Float Minimum (>=) confidence
confidenceLte - Float Maximum (<=) confidence
probabilityGt - Float Minimum (>) probability
probabilityLt - Float Maximum (<) probability
probabilityGte - Float Minimum (>=) probability
probabilityLte - Float Maximum (<=) probability
timeOfDayGte - Int Minimum (>=) time of day
timeOfDayLte - Int Maximum (<=) time of day
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates

Example

Query
query detectionCounts($period: InputDuration, $speciesId: ID, $scoreGt: Float, $scoreLt: Float, $scoreGte: Float, $scoreLte: Float, $confidenceGt: Float, $confidenceLt: Float, $confidenceGte: Float, $confidenceLte: Float, $probabilityGt: Float, $probabilityLt: Float, $probabilityGte: Float, $probabilityLte: Float, $timeOfDayGte: Int, $timeOfDayLte: Int, $ne: InputLocation, $sw: InputLocation) {
  detectionCounts(period: $period, speciesId: $speciesId, scoreGt: $scoreGt, scoreLt: $scoreLt, scoreGte: $scoreGte, scoreLte: $scoreLte, confidenceGt: $confidenceGt, confidenceLt: $confidenceLt, confidenceGte: $confidenceGte, confidenceLte: $confidenceLte, probabilityGt: $probabilityGt, probabilityLt: $probabilityLt, probabilityGte: $probabilityGte, probabilityLte: $probabilityLte, timeOfDayGte: $timeOfDayGte, timeOfDayLte: $timeOfDayLte, ne: $ne, sw: $sw) {
    bins {
      ...SpeciesCountBinFragment
    }
    count
    species {
      ...SpeciesFragment
    }
    speciesId
  }
}
Variables
{
  "period": InputDuration,
  "speciesId": ID,
  "scoreGt": 123.45,
  "scoreLt": 123.45,
  "scoreGte": 123.45,
  "scoreLte": 123.45,
  "confidenceGt": 987.65,
  "confidenceLt": 123.45,
  "confidenceGte": 123.45,
  "confidenceLte": 123.45,
  "probabilityGt": 123.45,
  "probabilityLt": 987.65,
  "probabilityGte": 123.45,
  "probabilityLte": 987.65,
  "timeOfDayGte": 987,
  "timeOfDayLte": 987,
  "ne": InputLocation,
  "sw": InputLocation
}
Response
{
  "data": {
    "detectionCounts": [
      {
        "bins": [SpeciesCountBin],
        "count": 987,
        "species": Species,
        "speciesId": ID
      }
    ]
  }
}

detections

List all detections
Returns a DetectionConnection!

Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
scoreGt - Float Minimum (>) score
scoreLt - Float Maximum (<) score
scoreGte - Float Minimum (>=) score
scoreLte - Float Maximum (<=) score
confidenceGt - Float Minimum (>) confidence
confidenceLt - Float Maximum (<) confidence
confidenceGte - Float Minimum (>=) confidence
confidenceLte - Float Maximum (<=) confidence
probabilityGt - Float Minimum (>) probability
probabilityLt - Float Maximum (<) probability
probabilityGte - Float Minimum (>=) probability
probabilityLte - Float Maximum (<=) probability
timeOfDayGte - Int Minimum (>=) time of day
timeOfDayLte - Int Maximum (<=) time of day
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates
sortBy - String

Example

Query
query detections($after: String, $before: String, $first: Int, $last: Int, $period: InputDuration, $speciesId: ID, $scoreGt: Float, $scoreLt: Float, $scoreGte: Float, $scoreLte: Float, $confidenceGt: Float, $confidenceLt: Float, $confidenceGte: Float, $confidenceLte: Float, $probabilityGt: Float, $probabilityLt: Float, $probabilityGte: Float, $probabilityLte: Float, $timeOfDayGte: Int, $timeOfDayLte: Int, $ne: InputLocation, $sw: InputLocation, $sortBy: String) {
  detections(after: $after, before: $before, first: $first, last: $last, period: $period, speciesId: $speciesId, scoreGt: $scoreGt, scoreLt: $scoreLt, scoreGte: $scoreGte, scoreLte: $scoreLte, confidenceGt: $confidenceGt, confidenceLt: $confidenceLt, confidenceGte: $confidenceGte, confidenceLte: $confidenceLte, probabilityGt: $probabilityGt, probabilityLt: $probabilityLt, probabilityGte: $probabilityGte, probabilityLte: $probabilityLte, timeOfDayGte: $timeOfDayGte, timeOfDayLte: $timeOfDayLte, ne: $ne, sw: $sw, sortBy: $sortBy) {
    edges {
      ...DetectionEdgeFragment
    }
    nodes {
      ...DetectionFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 987,
  "last": 987,
  "period": InputDuration,
  "speciesId": ID,
  "scoreGt": 987.65,
  "scoreLt": 987.65,
  "scoreGte": 123.45,
  "scoreLte": 987.65,
  "confidenceGt": 123.45,
  "confidenceLt": 987.65,
  "confidenceGte": 123.45,
  "confidenceLte": 123.45,
  "probabilityGt": 123.45,
  "probabilityLt": 987.65,
  "probabilityGte": 123.45,
  "probabilityLte": 123.45,
  "timeOfDayGte": 987,
  "timeOfDayLte": 123,
  "ne": InputLocation,
  "sw": InputLocation,
  "sortBy": "abc123"
}
Response
{
  "data": {
    "detections": {
      "edges": [DetectionEdge],
      "nodes": [Detection],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

searchSpecies

Search for species by common or scientific name
Returns a SpeciesConnection

Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.
query - String Search query string

Example

Query
query searchSpecies($after: String, $before: String, $first: Int, $last: Int, $query: String) {
  searchSpecies(after: $after, before: $before, first: $first, last: $last, query: $query) {
    edges {
      ...SpeciesEdgeFragment
    }
    nodes {
      ...SpeciesFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "first": 123,
  "last": 123,
  "query": "xyz789"
}
Response
{
  "data": {
    "searchSpecies": {
      "edges": [SpeciesEdge],
      "nodes": [Species],
      "pageInfo": PageInfo,
      "totalCount": 123
    }
  }
}

species

Fetch species by ID or exact scientific name
Returns a Species

Name Description
id - ID Species ID
scientificName - String Species scientific name

Example

Query
query species($id: ID, $scientificName: String) {
  species(id: $id, scientificName: $scientificName) {
    alpha
    alpha6
    color
    commonName
    ebirdCode
    ebirdUrl
    id
    imageCredit
    imageLicense
    imageLicenseUrl
    imageUrl
    mlUrl
    scientificName
    thumbnailUrl
    wikipediaSummary
    wikipediaUrl
  }
}
Variables
{"id": ID, "scientificName": "abc123"}
Response
{
  "data": {
    "species": {
      "alpha": "xyz789",
      "alpha6": "abc123",
      "color": "xyz789",
      "commonName": "abc123",
      "ebirdCode": "xyz789",
      "ebirdUrl": "xyz789",
      "id": ID,
      "imageCredit": "xyz789",
      "imageLicense": "abc123",
      "imageLicenseUrl": "xyz789",
      "imageUrl": "abc123",
      "mlUrl": "xyz789",
      "scientificName": "xyz789",
      "thumbnailUrl": "abc123",
      "wikipediaSummary": "abc123",
      "wikipediaUrl": "abc123"
    }
  }
}

station

Returns a Station!

Name Description
id - ID! Station ID

Example

Query
query station($id: ID!) {
  station(id: $id) {
    coords {
      ...CoordinatesFragment
    }
    detectionCounts {
      ...BinnedSpeciesCountFragment
    }
    detections {
      ...DetectionConnectionFragment
    }
    id
    latestDetectionAt
    location
    name
    source
    timezone
    topSpecies {
      ...SpeciesCountFragment
    }
    type
  }
}
Variables
{"id": ID}
Response
{
  "data": {
    "station": {
      "coords": Coordinates,
      "detectionCounts": [BinnedSpeciesCount],
      "detections": DetectionConnection,
      "id": ID,
      "latestDetectionAt": ISO8601DateTime,
      "location": "xyz789",
      "name": "xyz789",
      "source": "abc123",
      "timezone": "xyz789",
      "topSpecies": [SpeciesCount],
      "type": "xyz789"
    }
  }
}

stations

List all public stations.
Returns a StationConnection!

Name Description
after - String Returns the elements in the list that come after the specified cursor.
before - String Returns the elements in the list that come before the specified cursor.
first - Int Returns the first n elements from the list.
last - Int Returns the last n elements from the list.
query - String Optional search query

Example

Query
query stations($after: String, $before: String, $first: Int, $last: Int, $query: String) {
  stations(after: $after, before: $before, first: $first, last: $last, query: $query) {
    edges {
      ...StationEdgeFragment
    }
    nodes {
      ...StationFragment
    }
    pageInfo {
      ...PageInfoFragment
    }
    totalCount
  }
}
Variables
{
  "after": "xyz789",
  "before": "abc123",
  "first": 123,
  "last": 123,
  "query": "abc123"
}
Response
{
  "data": {
    "stations": {
      "edges": [StationEdge],
      "nodes": [Station],
      "pageInfo": PageInfo,
      "totalCount": 987
    }
  }
}

topBirdnetSpecies

Returns [SpeciesCount!]!

Name Description
limit - Int Maximum number of results to return
offset - Int Initial offset of first result
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates

Example

Query
query topBirdnetSpecies($limit: Int, $offset: Int, $period: InputDuration, $speciesId: ID, $ne: InputLocation, $sw: InputLocation) {
  topBirdnetSpecies(limit: $limit, offset: $offset, period: $period, speciesId: $speciesId, ne: $ne, sw: $sw) {
    averageProbability
    breakdown {
      ...SpeciesCountBreakdownFragment
    }
    count
    species {
      ...SpeciesFragment
    }
    speciesId
  }
}
Variables
{
  "limit": 123,
  "offset": 123,
  "period": InputDuration,
  "speciesId": ID,
  "ne": InputLocation,
  "sw": InputLocation
}
Response
{
  "data": {
    "topBirdnetSpecies": [
      {
        "averageProbability": 987.65,
        "breakdown": SpeciesCountBreakdown,
        "count": 123,
        "species": Species,
        "speciesId": ID
      }
    ]
  }
}

topSpecies

Returns [SpeciesCount!]!

Name Description
limit - Int Maximum number of results to return
offset - Int Initial offset of first result
period - InputDuration Time period for query (defaults to last 24 hours)
speciesId - ID Species ID (optional)
scoreGt - Float Minimum (>) score
scoreLt - Float Maximum (<) score
scoreGte - Float Minimum (>=) score
scoreLte - Float Maximum (<=) score
confidenceGt - Float Minimum (>) confidence
confidenceLt - Float Maximum (<) confidence
confidenceGte - Float Minimum (>=) confidence
confidenceLte - Float Maximum (<=) confidence
probabilityGt - Float Minimum (>) probability
probabilityLt - Float Maximum (<) probability
probabilityGte - Float Minimum (>=) probability
probabilityLte - Float Maximum (<=) probability
timeOfDayGte - Int Minimum (>=) time of day
timeOfDayLte - Int Maximum (<=) time of day
ne - InputLocation North-east bounding box coordinates
sw - InputLocation South-west bounding box coordinates

Example

Query
query topSpecies($limit: Int, $offset: Int, $period: InputDuration, $speciesId: ID, $scoreGt: Float, $scoreLt: Float, $scoreGte: Float, $scoreLte: Float, $confidenceGt: Float, $confidenceLt: Float, $confidenceGte: Float, $confidenceLte: Float, $probabilityGt: Float, $probabilityLt: Float, $probabilityGte: Float, $probabilityLte: Float, $timeOfDayGte: Int, $timeOfDayLte: Int, $ne: InputLocation, $sw: InputLocation) {
  topSpecies(limit: $limit, offset: $offset, period: $period, speciesId: $speciesId, scoreGt: $scoreGt, scoreLt: $scoreLt, scoreGte: $scoreGte, scoreLte: $scoreLte, confidenceGt: $confidenceGt, confidenceLt: $confidenceLt, confidenceGte: $confidenceGte, confidenceLte: $confidenceLte, probabilityGt: $probabilityGt, probabilityLt: $probabilityLt, probabilityGte: $probabilityGte, probabilityLte: $probabilityLte, timeOfDayGte: $timeOfDayGte, timeOfDayLte: $timeOfDayLte, ne: $ne, sw: $sw) {
    averageProbability
    breakdown {
      ...SpeciesCountBreakdownFragment
    }
    count
    species {
      ...SpeciesFragment
    }
    speciesId
  }
}
Variables
{
  "limit": 123,
  "offset": 123,
  "period": InputDuration,
  "speciesId": ID,
  "scoreGt": 987.65,
  "scoreLt": 123.45,
  "scoreGte": 987.65,
  "scoreLte": 123.45,
  "confidenceGt": 987.65,
  "confidenceLt": 123.45,
  "confidenceGte": 987.65,
  "confidenceLte": 123.45,
  "probabilityGt": 987.65,
  "probabilityLt": 123.45,
  "probabilityGte": 123.45,
  "probabilityLte": 123.45,
  "timeOfDayGte": 987,
  "timeOfDayLte": 987,
  "ne": InputLocation,
  "sw": InputLocation
}
Response
{
  "data": {
    "topSpecies": [
      {
        "averageProbability": 987.65,
        "breakdown": SpeciesCountBreakdown,
        "count": 123,
        "species": Species,
        "speciesId": ID
      }
    ]
  }
}

Types

BinnedSpeciesCount

Field Name Description
bins - [SpeciesCountBin!]!
count - Int!
species - Species
speciesId - ID!
Example
{
  "bins": [SpeciesCountBin],
  "count": 987,
  "species": Species,
  "speciesId": ID
}

Boolean

Represents true or false values.

Example
true

Coordinates

Field Name Description
lat - Float! Latitude
lon - Float! Longitude
Example
{"lat": 123.45, "lon": 123.45}

Count

Field Name Description
count - Int!
type - String!
Example
{"count": 987, "type": "abc123"}

Counts

Field Name Description
breakdown - CountsBreakdown!
detections - Int!
species - Int!
stations - Int!
Example
{
  "breakdown": CountsBreakdown,
  "detections": 123,
  "species": 987,
  "stations": 123
}

CountsBreakdown

Field Name Description
stations - [Count!]!
Example
{"stations": [Count]}

Detection

An audio detection of a species by a BirdWeather station.

Field Name Description
certainty - String! Calculated certainty
confidence - Float! Reported confidence
coords - Coordinates! Geographic coordinates of the detection
id - ID! The unique identifier for the resource
probability - Float Reported probability
score - Float! Calculated score
soundscape - Soundscape Associated soundscape (optional)
species - Species! Detection species
speciesId - ID! Species ID
station - Station Station that recorded this detection
timestamp - ISO8601DateTime Detection timestamp (in station time zone)
Example
{
  "certainty": "abc123",
  "confidence": 987.65,
  "coords": Coordinates,
  "id": ID,
  "probability": 123.45,
  "score": 987.65,
  "soundscape": Soundscape,
  "species": Species,
  "speciesId": ID,
  "station": Station,
  "timestamp": ISO8601DateTime
}

DetectionConnection

The connection type for Detection.

Field Name Description
edges - [DetectionEdge] A list of edges.
nodes - [Detection] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int!
Example
{
  "edges": [DetectionEdge],
  "nodes": [Detection],
  "pageInfo": PageInfo,
  "totalCount": 987
}

DetectionEdge

An edge in a connection.

Field Name Description
cursor - String! A cursor for use in pagination.
node - Detection The item at the end of the edge.
Example
{"cursor": "xyz789", "node": Detection}

Float

Represents signed double-precision fractional values as specified by IEEE 754.

Example
123.45

ID

Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "VXNlci0xMA==") or integer (such as 4) input value will be accepted as an ID.

Example
object

ISO8601Date

An ISO 8601-encoded date

Example
object

ISO8601DateTime

An ISO 8601-encoded datetime

Example
object

InputDuration

A time period (e.g. last 24 hours) or explicit date duration.

Input Field Description
count - Int

Number of units of time

unit - String

Unit of time (hour/day/week/month/year)

from - ISO8601Date

From date

to - ISO8601Date

To date

Example
{
  "count": 123,
  "unit": "xyz789",
  "from": ISO8601Date,
  "to": ISO8601Date
}

InputLocation

A geographic location (latitude / longitude pair).

Input Field Description
lat - Float!

Latitude

lon - Float!

Longitude

Example
{"lat": 123.45, "lon": 123.45}

Int

Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

NewDetectionPayload

Autogenerated return type of NewDetection

Field Name Description
detection - Detection!
Example
{"detection": Detection}

PageInfo

Information about pagination in a connection.

Field Name Description
endCursor - String When paginating forwards, the cursor to continue.
hasNextPage - Boolean! When paginating forwards, are there more items?
hasPreviousPage - Boolean! When paginating backwards, are there more items?
startCursor - String When paginating backwards, the cursor to continue.
Example
{
  "endCursor": "xyz789",
  "hasNextPage": false,
  "hasPreviousPage": false,
  "startCursor": "abc123"
}

Record

Field Name Description
id - ID! The unique identifier for the resource
Example
{"id": ID}

Sighting

A BirdNET or eBird sighting.

Field Name Description
coords - Coordinates!
id - ID! The unique identifier for the resource
score - Float!
species - Species!
speciesId - ID!
timestamp - ISO8601DateTime
Example
{
  "coords": Coordinates,
  "id": ID,
  "score": 987.65,
  "species": Species,
  "speciesId": ID,
  "timestamp": ISO8601DateTime
}

SightingConnection

The connection type for Sighting.

Field Name Description
edges - [SightingEdge] A list of edges.
nodes - [Sighting] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int!
Example
{
  "edges": [SightingEdge],
  "nodes": [Sighting],
  "pageInfo": PageInfo,
  "totalCount": 123
}

SightingEdge

An edge in a connection.

Field Name Description
cursor - String! A cursor for use in pagination.
node - Sighting The item at the end of the edge.
Example
{"cursor": "xyz789", "node": Sighting}

Soundscape

A soundscape file uploaded by a BirdWeather station.

Field Name Description
duration - Int! Duration (in seconds) of the audio file
endTime - Float! End time (in seconds) of the detection
filesize - Int! Size (in bytes) of the audio file
id - ID! The unique identifier for the resource
startTime - Float! Starting time (in seconds) of the detection
station - Station Station that recorded this soundscape
timestamp - ISO8601DateTime! Timestamp of the soundscape
url - String! URL for the audio file
Example
{
  "duration": 123,
  "endTime": 987.65,
  "filesize": 123,
  "id": ID,
  "startTime": 987.65,
  "station": Station,
  "timestamp": ISO8601DateTime,
  "url": "abc123"
}

Species

Field Name Description
alpha - String 4-letter alpha code
alpha6 - String 6-letter alpha code
color - String! Assigned color
commonName - String! Common name
ebirdCode - String eBird alpha code
ebirdUrl - String URL to eBird page
id - ID! The unique identifier for the resource
imageCredit - String Credited author of image
imageLicense - String Name of image license
imageLicenseUrl - String URL to image license page
imageUrl - String 400x400 image URL
mlUrl - String URL to Macaulay Library page
scientificName - String Scientific name
thumbnailUrl - String 100x100 thumbnail image URL
wikipediaSummary - String Wikipedia extract
wikipediaUrl - String URL to Wikipedia page
Example
{
  "alpha": "abc123",
  "alpha6": "abc123",
  "color": "abc123",
  "commonName": "xyz789",
  "ebirdCode": "abc123",
  "ebirdUrl": "xyz789",
  "id": ID,
  "imageCredit": "abc123",
  "imageLicense": "abc123",
  "imageLicenseUrl": "xyz789",
  "imageUrl": "xyz789",
  "mlUrl": "abc123",
  "scientificName": "xyz789",
  "thumbnailUrl": "xyz789",
  "wikipediaSummary": "xyz789",
  "wikipediaUrl": "xyz789"
}

SpeciesConnection

The connection type for Species.

Field Name Description
edges - [SpeciesEdge] A list of edges.
nodes - [Species] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int!
Example
{
  "edges": [SpeciesEdge],
  "nodes": [Species],
  "pageInfo": PageInfo,
  "totalCount": 123
}

SpeciesCount

Field Name Description
averageProbability - Float
breakdown - SpeciesCountBreakdown
count - Int!
species - Species
speciesId - ID!
Example
{
  "averageProbability": 987.65,
  "breakdown": SpeciesCountBreakdown,
  "count": 123,
  "species": Species,
  "speciesId": ID
}

SpeciesCountBin

Field Name Description
count - Int!
hour - Float!
Example
{"count": 987, "hour": 987.65}

SpeciesCountBreakdown

Field Name Description
almostCertain - Int! Count of almost certain detections
uncertain - Int! Count of uncertain detections
unlikely - Int! Count of unlikely detections
veryLikely - Int! Count of very likely detections
Example
{"almostCertain": 987, "uncertain": 987, "unlikely": 123, "veryLikely": 987}

SpeciesEdge

An edge in a connection.

Field Name Description
cursor - String! A cursor for use in pagination.
node - Species The item at the end of the edge.
Example
{"cursor": "abc123", "node": Species}

Station

A BirdWeather station (either real or virtual).

Field Name Description
coords - Coordinates! Location coordinates
detectionCounts - [BinnedSpeciesCount!]!

Arguments

period - InputDuration

Time period for query (defaults to last 24 hours)

speciesId - ID

Species ID (optional)

scoreGt - Float

Minimum (>) score

scoreLt - Float

Maximum (<) score

scoreGte - Float

Minimum (>=) score

scoreLte - Float

Maximum (<=) score

confidenceGt - Float

Minimum (>) confidence

confidenceLt - Float

Maximum (<) confidence

confidenceGte - Float

Minimum (>=) confidence

confidenceLte - Float

Maximum (<=) confidence

probabilityGt - Float

Minimum (>) probability

probabilityLt - Float

Maximum (<) probability

probabilityGte - Float

Minimum (>=) probability

probabilityLte - Float

Maximum (<=) probability

timeOfDayGte - Int

Minimum (>=) time of day

timeOfDayLte - Int

Maximum (<=) time of day

ne - InputLocation

North-east bounding box coordinates

sw - InputLocation

South-west bounding box coordinates

detections - DetectionConnection!

Arguments

after - String

Returns the elements in the list that come after the specified cursor.

before - String

Returns the elements in the list that come before the specified cursor.

first - Int

Returns the first n elements from the list.

last - Int

Returns the last n elements from the list.

id - ID! The unique identifier for the resource
latestDetectionAt - ISO8601DateTime Timestamp of latest detection
location - String! Human-readable location
name - String! Station name
source - String Stream source URL (optional)
timezone - String! Timezone string
topSpecies - [SpeciesCount!]!

Arguments

limit - Int

Maximum number of results to return

period - InputDuration

Time period for query (defaults to last 24 hours)

speciesId - ID

Species ID (optional)

scoreGt - Float

Minimum (>) score

scoreLt - Float

Maximum (<) score

scoreGte - Float

Minimum (>=) score

scoreLte - Float

Maximum (<=) score

confidenceGt - Float

Minimum (>) confidence

confidenceLt - Float

Maximum (<) confidence

confidenceGte - Float

Minimum (>=) confidence

confidenceLte - Float

Maximum (<=) confidence

probabilityGt - Float

Minimum (>) probability

probabilityLt - Float

Maximum (<) probability

probabilityGte - Float

Minimum (>=) probability

probabilityLte - Float

Maximum (<=) probability

timeOfDayGte - Int

Minimum (>=) time of day

timeOfDayLte - Int

Maximum (<=) time of day

type - String! Station type (fixed, dropoff, mobile, stream_youtube, stream_audio)
Example
{
  "coords": Coordinates,
  "detectionCounts": [BinnedSpeciesCount],
  "detections": DetectionConnection,
  "id": ID,
  "latestDetectionAt": ISO8601DateTime,
  "location": "abc123",
  "name": "xyz789",
  "source": "xyz789",
  "timezone": "abc123",
  "topSpecies": [SpeciesCount],
  "type": "xyz789"
}

StationConnection

The connection type for Station.

Field Name Description
edges - [StationEdge] A list of edges.
nodes - [Station] A list of nodes.
pageInfo - PageInfo! Information to aid in pagination.
totalCount - Int!
Example
{
  "edges": [StationEdge],
  "nodes": [Station],
  "pageInfo": PageInfo,
  "totalCount": 987
}

StationEdge

An edge in a connection.

Field Name Description
cursor - String! A cursor for use in pagination.
node - Station The item at the end of the edge.
Example
{"cursor": "abc123", "node": Station}

String

Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.

Subscription

Field Name Description
newDetection - NewDetectionPayload!
Example
{"newDetection": NewDetectionPayload}