Skip to content

FRD templates: Standard and API

Two FRD templates for different situations. Copy the one you need, fill in the sections, delete the prompts.

How to choose:

  • Standard FRD — systems with UI, complex business logic, enterprise projects
  • API FRD — API-first products, microservices, integrations

More on each format: FRD — the complete guide.


Standard FRD

Full template with seven sections. For systems with complex business rules and multiple integration points.

# FRD — [System Name]

## Overview
- **System Name:**
- **Author:**
- **Date:**
- **Version:**
- **Status:** Draft / In Review / Approved
- **Related PRD:** [link]

## 1. Introduction
### Purpose
What this document specifies and what system it describes.

### Scope
What is covered and what is explicitly excluded.

### Definitions and Acronyms
| Term | Definition |
|------|-----------|
|      |           |

### References
- PRD: [link]
- Architecture doc: [link]
- Design system: [link]

## 2. Functional Requirements

Use "shall" for must-have, "should" for optional requirements.

| ID | Requirement | Priority | Source | Acceptance Criteria |
|----|------------|----------|--------|-------------------|
| FR-001 |        | Must / Should | PRD §X |                   |
| FR-002 |        |          |        |                   |
| FR-003 |        |          |        |                   |

### FR-001: [Requirement Name]
**Description:** [Detailed behavior description]
**Input:** [What triggers this behavior]
**Output:** [What the system produces]
**Business Rules:**
- [Rule 1]
- [Rule 2]
**Error States:**
- [What happens when X fails]
- [What happens when Y is invalid]

## 3. Non-Functional Requirements

| ID | Requirement | Category | Target |
|----|------------|----------|--------|
| NFR-001 |        | Performance |     |
| NFR-002 |        | Security |        |
| NFR-003 |        | Availability |    |
| NFR-004 |        | Scalability |     |
| NFR-005 |        | Accessibility |   |

## 4. Data Requirements

### Data Model
[Entity-relationship description or diagram reference]

### Data Dictionary
| Field | Type | Required | Constraints | Description |
|-------|------|----------|------------|------------|
|       |      | Yes / No |            |            |

### Data Retention
- [Retention policy for each data category]

## 5. Interface Requirements

### User Interface
- [UI specifications, screen flows, validation rules]
- [Link to wireframes/mockups in appendix]

### System Interfaces
| System | Protocol | Data Format | Direction |
|--------|----------|-------------|-----------|
|        | REST / SOAP / MQ |    | Inbound / Outbound / Both |

### External Integrations
| Service | Purpose | Authentication | SLA |
|---------|---------|---------------|-----|
|         |         |               |     |

## 6. Acceptance Criteria

| FR ID | Criterion | Test Method |
|-------|-----------|-------------|
| FR-001 |          | Manual / Automated |
| FR-002 |          |             |

## 7. Appendices

### A. Wireframes / Mockups
[Links or embedded images]

### B. State Diagrams
[System state transitions]

### C. Glossary
| Term | Definition |
|------|-----------|
|      |           |

### D. Change Log
| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 1.0     |      |        | Initial draft |

API FRD

Template for API-first products. Focus on endpoints, schemas, and error handling.

More: API FRD — guide.

# API FRD — [API Name]

- **Author:**
- **Date:**
- **API Version:**
- **Base URL:** `https://api.example.com/v1`
- **Related PRD:** [link]

## 1. API Overview
[What this API does, who consumes it, how it fits into the system.]

## 2. Authentication
| Aspect | Specification |
|--------|--------------|
| Method |              |
| Token endpoint |      |
| Token lifetime |      |
| Authorization model | |

## 3. Endpoints

### POST /resource
**Description:**
**Auth:** Required / Optional
**Request body:**
```json
{
  "field": "type (required/optional, constraints)"
}

Response 201:

{
  "id": "string",
  "created_at": "ISO 8601"
}

Response 422:

{
  "error_code": "VALIDATION_ERROR",
  "message": "string",
  "details": []
}

GET /resource/:id

Description: Auth: Required Response 200: [schema] Response 404: [error schema]

[Repeat for each endpoint]

4. Error Handling

HTTP StatusError CodeMeaning
400BAD_REQUEST
401UNAUTHORIZED
403FORBIDDEN
404NOT_FOUND
422VALIDATION_ERROR
429RATE_LIMITED
500INTERNAL_ERROR

5. Rate Limiting

ParameterValue
Default limit
Burst limit
Headers
Exceeded response

6. Versioning

  • Strategy: URL / Header
  • Deprecation policy:
  • Sunset timeline:

7. Data Models

[Shared schemas used across endpoints]

ModelName:
  field_name: type (constraints)

---

## Resources

- [FRD — the complete guide](/product/guides/frd/) — when to use Standard vs API
- [API FRD guide](/product/guides/frd/api) — endpoint-level specification
- [FRD generator prompt](/product/prompts/frd-generator) — create an FRD using AI
- [Navigator prompt](/product/prompts/navigator) — find the right document type