{"info":{"name":"DTN Aviation API PIREP collection","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","description":"Pilot report ([PIREP](https://en.wikipedia.org/wiki/Pilot_report)) data describe conditions encountered by flights in air or at ground.\n\nThis PIREP collection includes requests categorization in:\n- Authorization\n- health-check\n- PIREPs\n    - Example PIREP: should all succeed though perhaps not provide data\n    - Invalid requests: should all fail because of some problem in request parameters\n    - Sandbox PIREP: starting point for requests utilizing any possible parameters\n"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{token}}","type":"string"}]},"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}],"variable":[{"key":"version","value":"v1"}],"item":[{"name":"Authorization","item":[{"name":"Generate Authorization Token","event":[{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{}}},{"listen":"test","script":{"exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"token\", jsonData.data.access_token);"],"type":"text/javascript","packages":{}}}],"protocolProfileBehavior":{"disabledSystemHeaders":{"accept":true,"content-type":true}},"request":{"auth":{"type":"noauth"},"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"grant_type\": \"client_credentials\",\n    \"client_id\": \"{{client_id}}\",\n    \"client_secret\": \"{{client_secret}}\",\n    \"audience\": \"{{audience}}\"\n}"},"url":{"raw":"{{auth_url}}/v1/tokens/authorize","host":["{{auth_url}}"],"path":["v1","tokens","authorize"]},"description":"- For authorization token request.\n- Requires No Auth for its own Auth Type.\n- Environment sets structure for automatically placing details from received token.\n- Make request any time previous token has expired."},"response":[]}],"description":"- For encompassing the authorization token request.\n- Requires No Auth for its own Auth Type.\n- Environment sets structure for automatically placing details from received token.\n- Make request any time previous token has expired.","auth":{"type":"noauth"},"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}]},{"name":"health-check","description":"- For encompassing the health-check request.\n- Uses inherited Auth Type set for collection.\n- Request is to validate API is functional and will show API version.","item":[{"name":"health-check","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/v1/health-check","host":["{{api_url}}"],"path":["v1","health-check"]},"description":"- For health-check request.\n- Uses inherited Auth Type set for collection.\n- Request is to validate API is functional and will show API version."},"response":[]}]},{"name":"PIREPs","event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["var moment = require('moment');","pm.environment.set('timestamp_minus_5h', moment().subtract(5,'hours'))","pm.environment.set('timestamp_minus_4h', moment().subtract(4,'hours'))","pm.environment.set('timestamp_minus_3h', moment().subtract(3,'hours'))","pm.environment.set('timestamp_minus_2h', moment().subtract(2,'hours'))","pm.environment.set('timestamp_minus_1h', moment().subtract(1,'hour'))","pm.environment.set('timestamp_minus_10m', moment().subtract(10,'minutes'))","pm.environment.set('timestamp_minus_5m', moment().subtract(5,'minutes'))","pm.environment.set('timestamp_minus_2m', moment().subtract(2,'minutes'))","pm.environment.set('timestamp_minus_1m', moment().subtract(1,'minute'))","pm.environment.set('timestamp_current', moment())","pm.environment.set('timestamp_plus_1h', moment().add(1,'hour'))","pm.environment.set('timestamp_plus_2h', moment().add(2,'hours'))","pm.environment.set('timestamp_plus_3h', moment().add(3,'hours'))","pm.environment.set('timestamp_plus_4h', moment().add(4,'hours'))","pm.environment.set('timestamp_plus_5h', moment().add(5,'hours'))","","pm.collectionVariables.set(\"endpoint\", \"pireps\");"]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}],"item":[{"name":"Example PIREP","event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":["var jsonData = pm.response.json()","","if (pm.response.code == 400) {","    jsonData.errors.forEach(function(error){","        console.log(`parameter '${error.parameter}' value '${error.value}' error: ${error.message}`)","    })","}","","pm.test(\"Status test\", function () {","    pm.response.to.have.status(200);","});","","pm.test(\"JSON expectations\", function () {","    var jsonData = pm.response.json();","    pm.expect(jsonData.type).to.eql(\"FeatureCollection\");","    pm.expect(jsonData.features).to.be.an(\"array\");","});","","pm.test(\"Feature evaluation\", function () {","    jsonData.features.forEach(function(feature){","        pm.expect(feature.type).to.eql(\"Feature\");","        pm.expect(feature.geometry.type).to.eql(\"Point\");","        pm.expect(feature.properties.ogcFeatureId).to.be.a(\"number\");","        pm.expect(feature.properties.navaidId).to.be.a(\"string\");","        pm.expect(feature.properties.aircraftType).to.be.a(\"string\");","        pm.expect(feature.properties.aircraftSize).to.be.oneOf([null,\"S\",\"I\",\"L\"]);","        pm.expect(feature.properties.rawTxt).to.be.a(\"string\");","        pm.expect(feature.properties.turbulenceScore).to.be.a(\"number\");","        pm.expect(feature.properties.icingScore).to.be.a(\"number\");","        pm.expect(feature.properties.validDateTime).to.match(/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$/);","        pm.expect(feature.properties.insertedDateTime).to.match(/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$/);","        pm.expect(feature.properties.flightLevel).to.be.a(\"number\");","        pm.expect(feature.properties.flightLevelType).to.be.a(\"string\");","        pm.expect(typeof(feature.properties.temperature) == 'number' || feature.properties.temperature == null).to.be.true;","        pm.expect(typeof(feature.properties.windSpeed) == 'number' || feature.properties.windSpeed == null).to.be.true;","        pm.expect(typeof(feature.properties.windDirection) == 'number' || feature.properties.windDirection == null).to.be.true;","        pm.expect(typeof(feature.properties.visibility) == 'number' || feature.properties.visibility == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceBase1) == 'number' || feature.properties.turbulenceBase1 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceTop1) == 'number' || feature.properties.turbulenceTop1 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceType1) == 'string' || feature.properties.turbulenceType1 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceIntensity1) == 'string' || feature.properties.turbulenceIntensity1 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceBase2) == 'number' || feature.properties.turbulenceBase2 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceTop2) == 'number' || feature.properties.turbulenceTop2 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceType2) == 'string' || feature.properties.turbulenceType2 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceIntensity2) == 'string' || feature.properties.turbulenceIntensity2 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceBase3) == 'number' || feature.properties.turbulenceBase3 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceTop3) == 'number' || feature.properties.turbulenceTop3 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceType3) == 'string' || feature.properties.turbulenceType3 == null).to.be.true;","        pm.expect(typeof(feature.properties.turbulenceIntensity3) == 'string' || feature.properties.turbulenceIntensity3 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingBase1) == 'number' || feature.properties.icingBase1 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingTop1) == 'number' || feature.properties.icingTop1 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingType1) == 'string' || feature.properties.icingType1 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingIntensity1) == 'string' || feature.properties.icingIntensity1 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingBase2) == 'number' || feature.properties.icingBase2 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingTop2) == 'number' || feature.properties.icingTop2 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingType2) == 'string' || feature.properties.icingType2 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingIntensity2) == 'string' || feature.properties.icingIntensity2 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingBase3) == 'number' || feature.properties.icingBase3 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingTop3) == 'number' || feature.properties.icingTop3 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingType3) == 'string' || feature.properties.icingType3 == null).to.be.true;","        pm.expect(typeof(feature.properties.icingIntensity3) == 'string' || feature.properties.icingIntensity3 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherBase1) == 'number' || feature.properties.weatherBase1 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherTop1) == 'number' || feature.properties.weatherTop1 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherType1) == 'string' || feature.properties.weatherType1 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherIntensity1) == 'string' || feature.properties.weatherIntensity1 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherBase2) == 'number' || feature.properties.weatherBase2 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherTop2) == 'number' || feature.properties.weatherTop2 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherType2) == 'string' || feature.properties.weatherType2 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherIntensity2) == 'string' || feature.properties.weatherIntensity2 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherBase3) == 'number' || feature.properties.weatherBase3 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherTop3) == 'number' || feature.properties.weatherTop3 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherType3) == 'string' || feature.properties.weatherType3 == null).to.be.true;","        pm.expect(typeof(feature.properties.weatherIntensity3) == 'string' || feature.properties.weatherIntensity3 == null).to.be.true;","        pm.expect(typeof(feature.properties.coverage1) == 'string' || feature.properties.coverage1 == null).to.be.true;","        pm.expect(typeof(feature.properties.coverageBase1) == 'number' || feature.properties.coverageBase1 == null).to.be.true;","        pm.expect(typeof(feature.properties.coverageTop1) == 'number' || feature.properties.coverageTop1 == null).to.be.true;","    })","});"]}}],"item":[{"name":"DEN-ABQ-PHX 75km corridor","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"corridor","value":"-104.632,39.856,-106.636,35.144,-112.003,33.435,75","description":"<lon_1>,<lat_1>,...,<lon_n>,<lat_n>,<halfwidth>"},{"key":"distanceUnits","value":"km","description":"Units for distance of defined circle radius or corridor halfwidth ; Allowed values are \"nm\" (default), \"sm\", \"km\", or \"m\""}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?corridor=-104.632,39.856,-106.636,35.144,-112.003,33.435,75&distanceUnits=km"},"description":"Gets data objects overlapping corridor defined with 75km halfwidth and line connecting Denver, Albuquerque, and Phoenix"}},{"name":"DTW SRID 3857 30nm circle","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"circle","value":"-9278813.516091732,5193540.620557246,30","description":"<x>,<y>,<radius> (non-4326 SRID)"},{"key":"srid","value":"3857","description":"SRID of provided input coordinates for spatial filter ; Allowed values are \"4326\" (default, lon/lat) or \"3857\" ; Does not affect output coordinates"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?circle=-9278813.516091732,5193540.620557246,30&srid=3857"}}},{"name":"Europe bbox specific aircraftTypes metric","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"unitSystem","value":"metric","description":"For unit system of output ; Allowed values are \"default\" (default, typically imperial units but not all) or \"metric\""},{"key":"bbox","value":"-10,35,30,60","description":"<min_lon>,<min_lat>,<max_lon>,<max_lat>"},{"key":"aircraftTypes","value":"A320,A321,A322,A332,A333,A340,A342,A343,A345,A346,A350,A388","description":"Include only objects whose reporting aircraftType is one of these ; Comma-delimited list of one or more aircraft types each defined by 3-4 letters/numbers"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?unitSystem=metric&bbox=-10,35,30,60&aircraftTypes=A320,A321,A322,A332,A333,A340,A342,A343,A345,A346,A350,A388"},"description":"Gets data objects overlapping bounding encompassing Europe with aircraftType matching any of specified list and output converted where applicable into metric units"}},{"name":"Great Lakes polygon minIcingScore 3","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"polygon","value":"-92.8,46.6,-87.3,41.4,-81.5,41.2,-75.1,44.0,-82.9,47,-87.6,49.5","description":"<lon_1>,<lat_1>,...,<lon_n>,<lat_n>"},{"key":"minIcingScore","value":"3","description":"Include only PIREPs whose icingScore is this or greater ; Integer, limited to between 0 to 10"},{"key":"maxIcingScore","value":"","description":"Include only PIREPs whose icingScore is this or less ; Integer, limited to between 0 to 10","disabled":true}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?polygon=-92.8,46.6,-87.3,41.4,-81.5,41.2,-75.1,44.0,-82.9,47,-87.6,49.5&minIcingScore=3"},"description":"Gets data objects overlapping polygon encompassing Great Lakes region with icingScore at least 3"}},{"name":"Rockies bbox turbulenceScore 2-5","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"bbox","value":"-120,30,-100,50","description":"<min_lon>,<min_lat>,<max_lon>,<max_lat>"},{"key":"minTurbulenceScore","value":"2","description":"Include only PIREPs whose turbulenceScore is this or greater ; Integer, limited to between 0 to 10"},{"key":"maxTurbulenceScore","value":"5","description":"Include only PIREPs whose turbulenceScore is this or less ; Integer, limited to between 0 to 10"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?bbox=-120,30,-100,50&minTurbulenceScore=2&maxTurbulenceScore=5"},"description":"Gets data objects overlapping bounding box encompassing Rocky Mountains region in USA and with turbulenceScore with 2 to 5"}},{"name":"SoCal navaidIds no geometry","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"navaidIds","value":"LAX,LGB,BUR,SNA,ONT,SMO,SAN,PSP,SBA,SMO,VNY","description":"Include only PIREPs whose navaidId is one of these ; Comma-delimited list of one or more identifiers containing only letters and numbers"},{"key":"geometry","value":"0","description":"Include geometry in response (boolean, default=true) ; Make falsy to blank out geometry in response"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?navaidIds=LAX,LGB,BUR,SNA,ONT,SMO,SAN,PSP,SBA,SMO,VNY&geometry=0"},"description":"Gets data objects with navaidId matching any of list of several southern California station"}},{"name":"Approx MSP-ORD-CMH-RIC 50nm corridor flight level range","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"corridor","value":"-92.461415,44.730290,-87.671376,41.655618,-82.991200,39.841383,-77.796741,37.729866,50","description":"<lon_1>,<lat_1>,...,<lon_n>,<lat_n>,<halfwidth>"},{"key":"minFlightLevelFt","value":"12000","description":"Include only PIREPs whose flightLevel is this or greater ; Integer, value is feet, limited to between 0 and 60000"},{"key":"maxFlightLevelFt","value":"24000","description":"Include only PIREPs whose flightLevel is this or less ; Integer, value is feet, limited to between 0 and 60000"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?corridor=-92.461415,44.730290,-87.671376,41.655618,-82.991200,39.841383,-77.796741,37.729866,50&minFlightLevelFt=12000&maxFlightLevelFt=24000"},"description":"Gets data objects overlapping corridor defined with 50nm halfwidth and line connecting roughly Minneapolis, Chicago, Columbus, and Richmond"}},{"name":"inserted last 10min","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_10m}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"insertedThrough","value":"{{timestamp_current}}","description":"Include only objects that were inserted before or at this time (in UTC) ; Allowed timeframe for values determined by data type"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_10m}}&insertedThrough={{timestamp_current}}"},"description":"Gets data inserted in past 10 minutes"}},{"name":"inserted timeframe 1-2h ago specific aircraftSizes","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_2h}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"insertedThrough","value":"{{timestamp_minus_1h}}","description":"Include only objects that were inserted before or at this time (in UTC) ; Allowed timeframe for values determined by data type"},{"key":"aircraftSizes","value":"L,null","description":"Include only objects whose reporting aircraftSize is one of these ; Comma-delimited list of one or more of \"S\" (small), \"I\" (intermediate), \"L\" (large), \"null\" (no size associated)"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_2h}}&insertedThrough={{timestamp_minus_1h}}&aircraftSizes=L,null"},"description":"Gets data inserted between 2 hours ago and 1 hour ago with aircraftSize either \"L\" or not determined"}},{"name":"reported within past hour","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"earliestReported","value":"{{timestamp_minus_1h}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later"},{"key":"latestReported","value":"{{timestamp_current}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?earliestReported={{timestamp_minus_1h}}&latestReported={{timestamp_current}}"},"description":"Gets data reported in past hour"}}],"description":"These requests are expected to succeed, though not necessarily always return data.\n\nTests are applied on each response aiming to confirm response is good:\n- To confirm 200 status code for response\n- To confirm that response is valid JSON with an array of features\n- To confirm structure of each object includes certain expected values in specific format"},{"name":"Invalid requests","event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":["var jsonData = pm.response.json()","","if (pm.response.code == 400) {","    jsonData.errors.forEach(function(error){","        console.log(`parameter '${error.parameter}' value '${error.value}' error: ${error.message}`)","    })","}","pm.test(\"Status test 400\", function () {","    pm.response.to.have.status(400);","});"]}}],"item":[{"name":"BAD invalid aircraftSizes","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_10m}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"aircraftSizes","value":"M,L","description":"Include only objects whose reporting aircraftSize is one of these ; Comma-delimited list of one or more of \"S\" (small), \"I\" (intermediate), \"L\" (large), \"null\" (no size associated)"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_10m}}&aircraftSizes=M,L"},"description":"Uses value not among specific allowed values for aircraftSize (there is no medium, as \"I\" for intermediate is between small and large)"}},{"name":"BAD unallowed valid time","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)"},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"earliestReported","value":"{{timestamp_minus_5h}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?limit=5&earliestReported={{timestamp_minus_5h}}"},"description":"Valid (reported) time is outside allowed constraints for PIREPs"}},{"name":"BAD invalid flight levels","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_10m}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"minFlightLevelFt","value":"23000","description":"Include only PIREPs whose flightLevel is this or greater ; Integer, value is feet, limited to between 0 and 60000"},{"key":"maxFlightLevelFt","value":"17000","description":"Include only PIREPs whose flightLevel is this or less ; Integer, value is feet, limited to between 0 and 60000"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_10m}}&minFlightLevelFt=23000&maxFlightLevelFt=17000"},"description":"Minimum threshold for parameter must not exceed maximum threshold"}},{"name":"BAD invalid icing score threshold","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_10m}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"minIcingScore","value":"20","description":"Include only PIREPs whose icingScore is this or greater ; Integer, limited to between 0 to 10"},{"key":"maxIcingScore","value":"30","description":"Include only PIREPs whose icingScore is this or less ; Integer, limited to between 0 to 10","disabled":true}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_10m}}&minIcingScore=20"},"description":"Icing score parameter is outside allowed constraints for PIREPs"}},{"name":"BAD invalid insert timeframe","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"stationIds","value":"KCHS","description":"Include only features whose stationId is one of these ; Comma-delimited list of one or more identifiers each defined by 3-4 letters/numbers"},{"key":"insertedAfter","value":"{{timestamp_current}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"insertedThrough","value":"{{timestamp_minus_5m}}","description":"Include only objects that were inserted before or at this time (in UTC) ; Allowed timeframe for values determined by data type"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?stationIds=KCHS&insertedAfter={{timestamp_current}}&insertedThrough={{timestamp_minus_5m}}"},"description":"An \"after\" time must be before a \"through\" time"}},{"name":"BAD invalid report timeframe","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"earliestReported","value":"{{timestamp_current}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later"},{"key":"latestReported","value":"{{timestamp_minus_10m}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?earliestReported={{timestamp_current}}&latestReported={{timestamp_minus_10m}}"},"description":"An \"earliest\" time must be before an \"latest\" time"}},{"name":"BAD invalid time format","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"2024-07-17 28:00:00 UTC","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter=2024-07-17 28:00:00 UTC"},"description":"Uses an impossible time value"}},{"name":"BAD invalid turbulence scores","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_10m}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type"},{"key":"minTurbulenceScore","value":"10","description":"Include only PIREPs whose turbulenceScore is this or greater ; Integer, limited to between 0 to 10"},{"key":"maxTurbulenceScore","value":"3","description":"Include only PIREPs whose turbulenceScore is this or less ; Integer, limited to between 0 to 10"}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?insertedAfter={{timestamp_minus_10m}}&minTurbulenceScore=10&maxTurbulenceScore=3"},"description":"Minimum threshold for parameter must not exceed maximum threshold"}},{"name":"BAD invalid unitSystem","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)","disabled":true},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"unitSystem","value":"special","description":"For unit system of output ; Allowed values are \"default\" (default, typically imperial units but not all) or \"metric\""}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?unitSystem=special"},"description":"Uses unrecognized unitSystem value"}}],"description":"These requests are expected to fail because of some problem with a parameter.\n\nA tests is applied on each response to confirm failure:\n- To confirm 400 status code for response"},{"name":"Sandbox PIREP","event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}],"item":[{"name":"any PIREPs","request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"host":["{{api_url}}"],"path":["{{version}}","{{endpoint}}"],"query":[{"key":"limit","value":"5","description":"Maximum number of objects to return (default=1000)"},{"key":"offset","value":"","description":"Where to start in paginated response set (default=0, i.e., first object)","disabled":true},{"key":"bbox","value":"-105,39,-103,41","description":"<min_lon>,<min_lat>,<max_lon>,<max_lat>","disabled":true},{"key":"polygon","value":"-105,39.8,-104.75,40,-104.5,39.8","description":"<lon_1>,<lat_1>,...,<lon_n>,<lat_n>","disabled":true},{"key":"circle","value":"-119,45,60","description":"<lon>,<lat>,<radius>","disabled":true},{"key":"circle","value":"-11651477.142859565,4846198.766932754,10","description":"<x>,<y>,<radius> (non-4326 SRID)","disabled":true},{"key":"corridor","value":"-104.632,39.856,-106.636,35.144,-112.003,33.435,20","description":"<lon_1>,<lat_1>,...,<lon_n>,<lat_n>,<halfwidth>","disabled":true},{"key":"srid","value":"3857","description":"SRID of provided input coordinates for spatial filter ; Allowed values are \"4326\" (default, lon/lat) or \"3857\" ; Does not affect output coordinates","disabled":true},{"key":"distanceUnits","value":"km","description":"Units for distance of defined circle radius or corridor halfwidth ; Allowed values are \"nm\" (default), \"sm\", \"km\", or \"m\"","disabled":true},{"key":"earliestReported","value":"{{timestamp_minus_2h}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later","disabled":true},{"key":"latestReported","value":"{{timestamp_minus_1h}}","description":"Include only PIREPs whose validDateTime is this time (in UTC) or later","disabled":true},{"key":"insertedAfter","value":"{{timestamp_minus_1h}}","description":"Include only objects that were inserted after this time (in UTC) ; Like if want new data and previous acquired all insertedThrough this time ; Allowed timeframe for values determined by data type","disabled":true},{"key":"insertedThrough","value":"{{timestamp_current}}","description":"Include only objects that were inserted before or at this time (in UTC) ; Allowed timeframe for values determined by data type","disabled":true},{"key":"aircraftTypes","value":"A320,A321","description":"Include only objects whose reporting aircraftType is one of these ; Comma-delimited list of one or more aircraft types each defined by 3-4 letters/numbers","disabled":true},{"key":"aircraftSizes","value":"L","description":"Include only objects whose reporting aircraftSize is one of these ; Comma-delimited list of one or more of \"S\" (small), \"I\" (intermediate), \"L\" (large), \"null\" (no size associated)","disabled":true},{"key":"navaidIds","value":"OWB,EVV","description":"Include only PIREPs whose navaidId is one of these ; Comma-delimited list of one or more identifiers containing only letters and numbers","disabled":true},{"key":"minFlightLevelFt","value":"12000","description":"Include only PIREPs whose flightLevel is this or greater ; Integer, value is feet, limited to between 0 and 60000","disabled":true},{"key":"maxFlightLevelFt","value":"14000","description":"Include only PIREPs whose flightLevel is this or less ; Integer, value is feet, limited to between 0 and 60000","disabled":true},{"key":"minTurbulenceScore","value":"8","description":"Include only PIREPs whose turbulenceScore is this or greater ; Integer, limited to between 0 to 10","disabled":true},{"key":"maxTurbulenceScore","value":"8","description":"Include only PIREPs whose turbulenceScore is this or less ; Integer, limited to between 0 to 10","disabled":true},{"key":"minIcingScore","value":"4","description":"Include only PIREPs whose icingScore is this or greater ; Integer, limited to between 0 to 10","disabled":true},{"key":"maxIcingScore","value":"5","description":"Include only PIREPs whose icingScore is this or less ; Integer, limited to between 0 to 10","disabled":true},{"key":"unitSystem","value":"metric","description":"For unit system of output ; Allowed values are \"default\" (default, typically imperial units but not all) or \"metric\"","disabled":true},{"key":"geometry","value":"0","description":"Include geometry in response (boolean, default=true) ; Make falsy to blank out geometry in response","disabled":true}],"raw":"{{api_url}}/{{version}}/{{endpoint}}?limit=5"},"description":"Can create requests from this basis by changing/setting any parameters."}}],"description":"This is for holding any requests a user may want to create and save.\n\nAt least one generic request with all possible parameters available to use should be provided as a template."}],"description":"#### Properties in feature object of PIREP response [GeoJSON](https://en.wikipedia.org/wiki/GeoJSON):\n\n- `ogcFeatureId`: Opaque reference identifier related to ingest and not part of data.\n- `validDateTime`: When the report starts (becomes applicable/valid/active), in UTC.\n- `insertedDateTime`: When the report for the PIREP was saved in our database, in UTC.  This value is useful chaining requests to get newly available data since a previous request.\n- `navaidId`: Identifier for station used in determining location for report.  Should be 3-character code, but often not accurately present or decodable from report.\n- `aircraftType`: 3- or 4-character code identifying aircraft from which report made.\n- `aircraftSize`: Indicator of size of aircraft.  Should be one of `S` (small), `I` (intermediate), or `L` (large).  However sometimes value is NULL because size could not be determined from the provided aircraft type.\n- `flightLevel`: Height for which report is made.  This is Z-dimension to go along with longitude and latitude for location.\n- `flightLevelType`: Type of level at which report made.  Is often `LEVEL` for something strictly reported at specific height, but can be like `DURD` or `DURC` to indicate that while traversing elevation range.\n- `turbulenceScore`: Numerical value between 0 and 10 related to turbulence degree in report.\n- `icingScore`: Numerical value between 0 and 10 related to icing degree in report.\n- `rawTxt`: The original undecoded text content for the report.\n- `temperature`\\*: Numerical value for air temperature from report.\n- `windSpeed`\\*: Numerical value for wind speed from report.\n- `windDirection`\\*: Numerical value for bearing of wind direction from report.\n- `visibility`\\*: Numerical value to indicate visibility distance.\n- `turbulenceBase#`\\*: Height of bottom of reported turbulence layer #.\n- `turbulenceTop#`\\*: Height of top of reported turbulence layer #.\n- `turbulenceType#`\\*: Type of turbulence in layer, like `CHOP`.  Maybe empty.\n- `turbulenceIntensity#`\\*: Degree of turbulence in layer, like `NEG`, `LGT-MOD`, or `SEV`.\n- `icingBase#`\\*: Height of bottom of reported icing layer.\n- `icingTop#`\\*: Height of top of reported icing layer.\n- `icingType#`\\*: Type of icing in layer, like `RIME`.  Maybe empty.\n- `icingIntensity#`\\*: Degree of turbulence in layer, like `NEG`, `TRACE`, or `MOD-SEV`.\n- `weatherBase#`\\*: Height of bottom of reported weather layer.\n- `weatherTop#`\\*: Height of top of reported weather layer.\n- `weatherType#`\\*: Type of weather in layer.  Maybe empty.\n- `weatherIntensity#`\\*: Degree of weather in layer.\n- `coverageTop#`\\*: Height of bottom of reported cloud layer.\n- `coverageBottom#`\\*: Height of bottom of reported cloud layer.\n- `coverage#`\\*: Coverage abbreviation for cloud layer, like `SCT`, `BKN`, or `OVC`.\n- `unitSystem`: Indicates unit system for measured values.  Default uses mostly (though not all) imperial values, but metric can be selected.  See unit conversion for units for particular fields in those systems.\n\n\\# indicates an index number between 1 and 4 as it is possible to have up to four fields with the associated basis.  E.g., `weatherBase1` and `weatherBase2` (and other fields) may be present.\n\n\\* indicates a field that is present only if it has a non-null value.  If such a field provides no data, it is not included among the properties of an object in the response.\n\n#### Field units depending on specified `unitSystem`:\n\n| property | default | metric |\n| -------- | ------- | ------ |\n| temperature | degC | degC |\n| windSpeed | knots | meters per second |\n| visibility | miles | meters |\n| flightLevel | feet | meters |\n| turbulenceBase# | feet | meters |\n| turbulenceTop# | feet | meters |\n| icingBase# | feet | meters |\n| icingTop# | feet | meters |\n| weatherBase# | feet | meters |\n| weatherTop# | feet | meters |\n| coverageBase# | feet | meters |\n| coverageTop# | feet | meters |\n\n#### Report intensity relation to code for turbulence or icing:\n\n| turbulence OR icing intensity | score |\n| ----------------------------- | ----- |\n| NEG | 1 |\n| TRACE | 2 |\n| TRACE-LGT | 3 |\n| LGT | 4 |\n| LGT-MOD | 5 |\n| MOD | 6 |\n| MOD-SEV | 7 |\n| SEV | 8 |\n| SEV/EXTRM | 9 |\n| EXTRM | 10 |\n| otherwise (if not specified or does not match any of above) | 0 |"}]}