Aggregate requests
Send two GET request to two urls and aggregates the responses into one response.
export default {  async fetch(request) {    // someHost is set up to return JSON responses    const someHost = "https://jsonplaceholder.typicode.com";    const url1 = someHost + "/todos/1";    const url2 = someHost + "/todos/2";
    const responses = await Promise.all([fetch(url1), fetch(url2)]);    const results = await Promise.all(responses.map((r) => r.json()));
    const options = {      headers: { "content-type": "application/json;charset=UTF-8" },    };    return new Response(JSON.stringify(results), options);  },};export default {  async fetch(request) {    // someHost is set up to return JSON responses    const someHost = "https://jsonplaceholder.typicode.com";    const url1 = someHost + "/todos/1";    const url2 = someHost + "/todos/2";
    const responses = await Promise.all([fetch(url1), fetch(url2)]);    const results = await Promise.all(responses.map((r) => r.json()));
    const options = {      headers: { "content-type": "application/json;charset=UTF-8" },    };    return new Response(JSON.stringify(results), options);  },} satisfies ExportedHandler;import { Hono } from "hono";
const app = new Hono();
app.get("*", async (c) => {  // someHost is set up to return JSON responses  const someHost = "https://jsonplaceholder.typicode.com";  const url1 = someHost + "/todos/1";  const url2 = someHost + "/todos/2";
  // Fetch both URLs concurrently  const responses = await Promise.all([fetch(url1), fetch(url2)]);
  // Parse JSON responses concurrently  const results = await Promise.all(responses.map((r) => r.json()));
  // Return aggregated results  return c.json(results);});
export default app;from workers import Response, fetchimport asyncioimport json
async def on_fetch(request):    # some_host is set up to return JSON responses    some_host = "https://jsonplaceholder.typicode.com"    url1 = some_host + "/todos/1"    url2 = some_host + "/todos/2"
    responses = await asyncio.gather(fetch(url1), fetch(url2))    results = await asyncio.gather(*(r.json() for r in responses))
    headers = {"content-type": "application/json;charset=UTF-8"}    return Response.json(results, headers=headers)Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark