Because it's a "oneshot", you can do it manually (also possible running via Node) Open a JavaScript console in your browser. You need to loop to get an array of array of `Feature` (because each `FeatureCollection` have one or more `Feature`) Then, you will use the flatten function to transform the array of array into an array (a recursive function borrowed from https://stackoverflow.com/a/15030117) The full code is below (except the file content, not complete to keep things readable) // Copy/paste the text from you source https://raw.githubusercontent.com/RitterLean/Geojson/master/geofile.json content = { "points": [{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "coordinates": [41.9773865, 36.3372536], "type": "Point" }, "properties": { "attacks": 1, "location": "Sinjar", "date": "2015-10-16" } }, { "type": "Feature", "geometry": { "coordinates": [43.4873886, 34.9301605], "type": "Point" }, "properties": { "attacks": 2, "location": "Baiji", "date": "2015-10-16" } }, { ... // Be careful, incomplete because shortened for illustration intermediate_result = content['points'].map(function(el){ return el.features; }); function flatten(arr) { return arr.reduce(function (flat, toFlatten) { return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten); }, []); }; geojson_output = { "type": "FeatureCollection", "features": flatten(intermediate_result) } // Transform the object to a string you can paste into a file console.log(JSON.stringify(geojson_output)); The result can be seen at http://geojson.io/#id=gist:anonymous/da10ab9afc9a5941ba66&map=4/19.48/22.32 You will see that some results have wrong coordinates (0, 0). It's due to the original content. From this demo, you can also export to GeoJSON.