with GeoDB Cities and Data Stores?
Find cities, filtering by optional criteria. If no criteria are set, you will get back all known cities with a population of at least 1000. See the docs
Add or update a single record in your Pipedream Data Store
Get the details for a specific country, including number of regions. See the docs
Add or update multiple records to your Pipedream Data Store
Get the details of a specific country region, including number of cities. See the docs
The GeoDB Cities API lets you tap into a rich dataset of worldwide cities, their attributes, and related data. On Pipedream, you can use this API to create workflows that automate location-based tasks, enrich data with geographical context, or power apps with location intelligence. For instance, you could trigger a workflow whenever a new city is added to a database, gather demographic information based on city names, or even integrate with travel platforms to plan itineraries.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
geodb_cities: {
type: "app",
app: "geodb_cities",
}
},
async run({steps, $}) {
const data = {
"query": `{country(id:"US"){name region(code:"CA"){name populatedPlaces(first:10){totalCount pageInfo{startCursor endCursor hasNextPage}edges{node{name}}}}}}`,
}
return await axios($, {
method: "post",
url: `http://geodb-free-service.wirefreethought.com/graphql`,
headers: {
"x-rapidapi-key": `${this.geodb_cities.$auth.api_key}`,
"Content-Type": `application/json`,
},
data,
})
},
})
Data Stores are a key-value store that allow you to persist state and share data across workflows. You can perform CRUD operations, enabling dynamic data management within your serverless architecture. Use it to save results from API calls, user inputs, or interim data; then read, update, or enrich this data in subsequent steps or workflows. Data Stores simplify stateful logic and cross-workflow communication, making them ideal for tracking process statuses, aggregating metrics, or serving as a simple configuration store.
export default defineComponent({
props: {
myDataStore: {
type: "data_store",
},
},
async run({ steps, $ }) {
await this.myDataStore.set("key_here","Any serializable JSON as the value")
return await this.myDataStore.get("key_here")
},
})