Skip to main content
The userReviews() method retrieves detailed reviews written by a user on their ČSFD profile. Unlike ratings, reviews include the full review text along with ratings and metadata.

Method Signature

csfd.userReviews(
  userId: string | number,
  config?: UserReviewsOptions,
  options?: CSFDOptions
): Promise<CSFDUserReviews[]>

Parameters

userId
string | number
required
ČSFD user ID or username. Can be numeric (e.g., 195357) or include username (e.g., "195357-verbal")
config
UserReviewsOptions
Configuration for filtering and pagination
options
CSFDOptions
Optional request configuration

Return Type

CSFDUserReviews[]
array
Array of user review objects

Usage Examples

import { csfd } from 'node-csfd-api';

// Get latest reviews
const reviews = await csfd.userReviews(195357);

reviews.forEach(review => {
  console.log(`${review.title} (${review.year})`);
  console.log(`Rating: ${review.userRating}/5`);
  console.log(`Review: ${review.text}`);
  console.log('---');
});
[
  {
    "id": 1391448,
    "title": "Co s Péťou?",
    "year": 2025,
    "type": "film",
    "url": "https://www.csfd.cz/film/1391448-co-s-petou/prehled/",
    "colorRating": "good",
    "userDate": "27.11.2025",
    "userRating": 4,
    "text": "Co s Péťou? Inu, co by? Každý normální Sparťan by to okamžitě mrdnul z útesu...",
    "poster": "https://image.pmgstatic.com/cache/resized/w240h339/files/images/film/posters/170/492/170492173_1l3djd.jpg"
  },
  {
    "id": 1530416,
    "title": "Kouzlo derby",
    "year": 2025,
    "type": "film",
    "url": "https://www.csfd.cz/film/1530416-kouzlo-derby/prehled/",
    "colorRating": "average",
    "userDate": "26.11.2025",
    "userRating": 1,
    "text": "Typické kolečkoidní sebevykradačské pásmo klišovitých...",
    "poster": "https://image.pmgstatic.com/cache/resized/w240h339/files/images/film/posters/170/230/170230377_cimu90.jpg"
  }
]

Review Text Analysis

Since reviews include full text, you can perform various analyses:
import { csfd } from 'node-csfd-api';

const reviews = await csfd.userReviews(195357);

// Calculate average review length
const avgLength = reviews.reduce(
  (sum, r) => sum + r.text.length, 0
) / reviews.length;

console.log(`Average review length: ${avgLength.toFixed(0)} characters`);

// Find reviews by rating
const fiveStarReviews = reviews.filter(r => r.userRating === 5);
const oneStarReviews = reviews.filter(r => r.userRating === 1);

console.log(`5-star reviews: ${fiveStarReviews.length}`);
console.log(`1-star reviews: ${oneStarReviews.length}`);
includesOnly and exclude are mutually exclusive. If both are provided, includesOnly takes precedence.
Rate Limiting: When using allPages: true, always use an appropriate allPagesDelay (2000ms or higher recommended) to avoid detection. ČSFD may block requests that appear automated.
Reviews include poster images, making them ideal for building UI components that display user opinions with visual context.

Build docs developers (and LLMs) love