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;from js import Response, fetch, Headers, JSON, Promise
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 Promise.all([fetch(url1), fetch(url2)])    results = await Promise.all(map(lambda r: r.json(), responses))
    headers = Headers.new({"content-type": "application/json;charset=UTF-8"}.items())    return Response.new(JSON.stringify(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