Technical guide library
Choose a guide category
Start with the path that matches what you are building. Each category opens its own complete technical article.
A complete guide to defining a project, using EFPRP data, handling browser access, respecting limits, and moving safely from sandbox to production.
Technical guide library
Start with the path that matches what you are building. Each category opens its own complete technical article.
01 / First steps
EFPRP APIs make environmental, wildfire, telemetry, and rural preservation data available to approved applications over HTTPS. You can begin in the sandbox without connecting to live operational systems.
02 / Fundamentals
An API is a documented way for one application to request data or an operation from another service. Your application sends an HTTPS request to an EFPRP endpoint; EFPRP validates the request and returns a structured JSON response.
| Part | Purpose | Example |
|---|---|---|
| Method | Describes the operation. | GET reads data; POST submits a query or action. |
| Path | Identifies the service. | /v1/wildfire/risk-index |
| Headers | Carry authorization and response preferences. | Authorization: Bearer ... |
| Parameters | Refine a query. | ?region=mediterranean-east |
03 / Project setup
A project groups your application, data access, credentials, allowed origins, and usage plan. Defining it accurately helps EFPRP issue the least-privileged access your integration needs.
| Field | What to provide |
|---|---|
| Project name | A recognizable application or team name. |
| Purpose | What the data will support, such as wildfire monitoring or research. |
| Data types | Only the data families your application will use. |
| Environments | Sandbox for development, Production for approved live traffic. |
| Web origins | HTTPS origins that are allowed to call the API from a browser. |
04 / Catalog
The EFPRP catalog grows as new sources and services become available. New data types are added regularly, with catalog updates planned every month.
Each dataset declares its update interval and the timestamp of the latest source update. EFPRP refreshes the catalog at least monthly and can publish an update sooner when a more recent or higher-quality source becomes available.
| Response field | Meaning |
|---|---|
updated_at | When the returned dataset was last refreshed. |
source_timestamp | When the upstream source produced the observation. |
data_version | Version of the EFPRP normalization or processing pipeline. |
Applications should display the timestamp to users and avoid assuming that every dataset updates at the same frequency.
05 / Security
After Firebase Authentication signs a user in, the EFPRP project receives an API credential for service requests. Keep credentials on the server whenever possible; never commit them to source control.
curl https://api.efprp.org/v1/status \ -H "Authorization: Bearer $EFPRP_API_KEY" \ -H "Accept: application/json"
06 / Integration
Start with the status endpoint, then query a read-only data endpoint using the smallest useful parameter set.
const response = await fetch(
'https://api.efprp.org/v1/wildfire/risk-index?region=mediterranean-east',
{
headers: {
Authorization: `Bearer ${apiKey}`,
Accept: 'application/json'
}
}
);
const data = await response.json();07 / Browser access
Cross-Origin Resource Sharing (CORS) controls whether browser JavaScript from one origin may read a response from another origin. EFPRP supports preflighted requests for approved project origins.
https://app.example.org.http://localhost:5173.OPTIONS preflight when your browser request uses authorization headers or non-simple methods.| Browser issue | Likely cause | Resolution |
|---|---|---|
| CORS origin denied | Origin is not registered. | Add the exact origin to the project. |
| Preflight failed | Method or header is not allowed. | Use supported methods and standard authorization headers. |
| Works in curl, fails in browser | Browser security policy is involved. | Check DevTools Network and the project CORS settings. |
08 / Usage
EFPRP uses project-level quotas so the platform remains predictable for public agencies, researchers, nonprofits, and growing teams. Plans are designed to keep entry costs affordable while matching higher-volume usage to operational needs.
| Limit | What it controls | What to do |
|---|---|---|
| Requests per minute | Short-term traffic bursts. | Use exponential backoff and cache stable results. |
| Monthly allocation | Total project usage in a billing period. | Review the dashboard and choose the appropriate plan. |
| Concurrent requests | Requests processed at one time. | Queue work and avoid unbounded parallelism. |
| Payload size | Maximum request or response body. | Filter by region, time range, or page size. |
Exact quotas and pricing depend on the project plan and data services selected. The response headers expose current rate-limit information when available, including X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After.
09 / Reliability
| Status | Meaning | Action |
|---|---|---|
400 | Invalid parameters or body. | Fix the request and do not retry unchanged. |
401 | Missing, expired, or invalid credential. | Refresh or rotate the credential. |
403 | Project lacks the required scope. | Request the correct access scope. |
429 | Rate limit reached. | Honor Retry-After and use exponential backoff. |
5xx | Temporary service problem. | Retry a limited number of times with backoff. |
function retryDelay(attempt) {
return Math.min(30000, 500 * (2 ** attempt));
}10 / Release
11 / For teams
EFPRP projects can support public agencies, academic research, nonprofit programs, and commercial products. Select only the services needed for your use case, then choose a plan based on expected volume and freshness requirements.
For access, abuse reporting, or rights questions, use the contacts in the footer of this page.
11 / Website integration
Use a backend proxy in production so EFPRP credentials never reach the browser. The browser requests your server, your server authenticates with EFPRP, and your server returns only the fields the page needs.
/api/fire-risk.updated_at timestamp.12 / Android and iOS
Android and iOS clients should call your backend rather than carrying a permanent EFPRP key. This protects credentials and gives you one place to manage permissions, retries, caching, and push notifications.
13 / Twilio and messaging
Use EFPRP data as the decision input and Twilio as the delivery layer. Your service should decide who receives an alert, at what severity, and how often.