API reference (2)
Last updated Apr 21, 2026 The following methods can be used to configure your Pages Function.
Methods
onRequests
The onRequest method will be called unless a more specific onRequestVerb method is exported. For example, if both onRequest and onRequestGet are exported, only onRequestGet will be called for GET requests.
onRequest(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all requests no matter what the request method is, as long as no specific request verb (like one of the methods below) is exported.
onRequestGet(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
GETrequests. onRequestPost(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
POSTrequests. onRequestPatch(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
PATCHrequests. onRequestPut(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
PUTrequests. onRequestDelete(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
DELETErequests. onRequestHead(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
HEADrequests. onRequestOptions(context [EventContext](#eventcontext))Response | Promise\<Response>- This function will be invoked on all
OPTIONSrequests.
env.ASSETS.fetch()
The env.ASSETS.fetch() function allows you to fetch a static asset from your Pages project.
You can pass a Request object, URL string, or URL object to env.ASSETS.fetch() function. The URL must be to the pretty path, not directly to the asset. For example, if you had the path /users/index.html, you will request /users/ instead of /users/index.html. This method call will run the header and redirect rules, modifying the response that is returned.
Types
EventContext
The following are the properties on the context object which are passed through on the onRequest methods:
requestRequest
This is the incoming Request.
- functionPath string
This is the path of the request.
- waitUntil(promisePromise<any>) void
Refer to waitUntil documentation for more information.
- passThroughOnException() void
Refer to passThroughOnException documentation for more information. Note that this will not work on an advanced mode project.
- next(input?Request | string, init?RequestInit) Promise\<Response>
Passes the request through to the next Function or to the asset server if no other Function is available.
- env EnvWithFetch
- params Params\<P>
Holds the values from dynamic routing.
In the following example, you have a dynamic path that is /users/[user].js. When you visit the site on /users/nevi the params object would look like:
js
{
user: "nevi";
}
This allows you fetch the dynamic value from the path:
js
export function onRequest(context) {
return new Response(`Hello ${context.params.user}`);
}
Which would return "Hello nevi".
- data Data
EnvWithFetch
Holds the environment variables, secrets, and bindings for a Function. This also holds the ASSETS binding which is how you can fallback to the asset-serving behavior.
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/pages/functions/api-reference/#page","headline":"API reference","description":"Learn about the APIs used within Pages Functions.","url":"https://developers.cloudflare.com/pages/functions/api-reference/","inLanguage":"en","image":"https://developers.cloudflare.com/pages/functions/api-reference/og.png?v=dc8d853508ea0d75","dateModified":"2026-04-21","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: Connect Pages Functions to Cloudflare resources like KV, R2, D1, and Durable Objects. title: Bindings image: https://developers.cloudflare.com/pages/functions/bindings/og.png?v=3a2a66ac42cf54e8
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/pages/llms.txt
Use this file to discover all available pages before exploring further.
Docs