Svensk Filmdatabas APIsvenskfilmdatabas.se ↗
Access data on Swedish films currently in production from Svensk Filmdatabas. List titles with filters, get cast, crew, and production facts by film ID.
What is the Svensk Filmdatabas API?
This API exposes 2 endpoints covering Swedish films currently in production from Svensk Filmdatabas (the Swedish Film Database). The list_films_in_production endpoint returns paginated film summaries with filtering by type and country, while get_film_details returns structured production facts including cast, director, producer, screenplay, category, and year for a specific film identified by its numeric ID.
curl -X GET 'https://api.parse.bot/scraper/4f6f74e6-f5b8-4c24-8bf0-bfe4162f3568/list_films_in_production' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace svenskfilmdatabas-se-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
Svensk Filmdatabas - Films in Production API Client
Get your API key from: https://parse.bot/settings
"""
import os
import requests
from typing import Optional
class ParseClient:
"""Client for the Svensk Filmdatabas Films in Production API."""
def __init__(self, api_key: Optional[str] = None):
"""Initialize the Parse API client."""
self.base_url = "https://api.parse.bot"
self.scraper_id = "4f6f74e6-f5b8-4c24-8bf0-bfe4162f3568"
self.api_key = api_key or os.getenv("PARSE_API_KEY")
if not self.api_key:
raise ValueError("API key must be provided or set in PARSE_API_KEY environment variable")
def _call(self, endpoint: str, method: str = "POST", **params) -> dict:
"""
Make a request to the Parse API.
Args:
endpoint: The API endpoint name
method: HTTP method (GET or POST)
**params: Query or body parameters
Returns:
dict: The API response
"""
url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
headers = {"X-API-Key": self.api_key, "Content-Type": "application/json"}
if method.upper() == "GET":
response = requests.get(url, headers=headers, params=params)
else:
response = requests.post(url, headers=headers, json=params)
response.raise_for_status()
return response.json()
def list_films_in_production(
self,
page: int = 1,
sort_by: str = "chrono_desc",
film_type: Optional[str] = None,
country: Optional[str] = None,
) -> dict:
"""
List Swedish films currently in production.
Args:
page: Page number for pagination (15 items per page)
sort_by: Sort order - chrono_desc, chrono_asc, alpha_asc, alpha_desc
film_type: Filter by film type - Kortfilm or Långfilm
country: Filter by production country
Returns:
dict: Paginated list of films with metadata
"""
params = {"page": page, "sort_by": sort_by}
if film_type:
params["film_type"] = film_type
if country:
params["country"] = country
return self._call("list_films_in_production", method="GET", **params)
def get_film_details(self, film_id: str) -> dict:
"""
Get detailed information about a specific film.
Args:
film_id: Numeric film ID
Returns:
dict: Detailed film information including cast and production facts
"""
return self._call("get_film_details", method="GET", film_id=film_id)
def main():
"""Demonstrate practical usage of the Films in Production API."""
client = ParseClient()
print("=" * 60)
print("SVENSKA FILMDATABAS - FILMS IN PRODUCTION")
print("=" * 60)
# Step 1: List films in production - get Swedish long films, sorted alphabetically
print("\n1. Fetching Swedish long films (Långfilm) sorted alphabetically...")
response = client.list_films_in_production(page=1, sort_by="alpha_asc", film_type="Långfilm", country="Sverige")
total_films = response["total_count"]
films_on_page = len(response["items"])
print(f"\n Total Swedish long films in production: {total_films}")
print(f" Films on this page: {films_on_page}")
print(f" Available film types: {', '.join(response['available_film_types'])}")
# Step 2: Display first few films from the list
print("\n2. First 5 films on the list:")
print("-" * 60)
films_to_detail = response["items"][:5]
for i, film in enumerate(films_to_detail, 1):
print(f"\n {i}. {film['title']}")
print(f" Type: {film['film_type']}")
print(f" Meta: {film['meta']}")
print(f" ID: {film['id']}")
# Step 3: Get detailed information for the first film
if films_to_detail:
first_film_id = films_to_detail[0]["id"]
first_film_title = films_to_detail[0]["title"]
print("\n3. Fetching detailed information for the first film...")
print(f" Film: {first_film_title}")
print("-" * 60)
details = client.get_film_details(first_film_id)
print(f"\n Original Title: {details.get('original_title', 'N/A')}")
print(f" Year: {details.get('year', 'N/A')}")
print(f" Category: {details.get('category', 'N/A')}")
print(f" Director: {details.get('director', 'N/A')}")
print(f" Producer: {details.get('producer', 'N/A')}")
print(f" Screenplay: {details.get('screenplay', 'N/A')}")
print(f" Production Country: {details.get('production_country', 'N/A')}")
print(f" Production Company: {details.get('production_company', 'N/A')}")
# Display cast if available
if details.get("cast"):
print(f"\n Cast ({len(details['cast'])} members):")
for cast_member in details["cast"][:5]: # Show first 5 cast members
print(f" - {cast_member['name']} as {cast_member['role']}")
if len(details["cast"]) > 5:
print(f" ... and {len(details['cast']) - 5} more")
# Step 4: Show summary statistics
print("\n4. Summary Statistics:")
print("-" * 60)
# Get short films count for comparison
short_films = client.list_films_in_production(page=1, film_type="Kortfilm")
short_count = short_films["total_count"]
print(f"\n Total Swedish Long Films (Långfilm): {total_films}")
print(f" Total Swedish Short Films (Kortfilm): {short_count}")
print(f" Grand Total: {total_films + short_count}")
print("\n" + "=" * 60)
print("API exploration complete!")
print("=" * 60)
if __name__ == "__main__":
main()List Swedish films currently in production. Returns paginated results with 15 items per page. Supports filtering by film type and production country, and sorting chronologically or alphabetically.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (15 items per page). |
| country | string | Filter by production country. Accepts exactly one of: Sverige, Belgien, Danmark, Finland, Frankrike, Grekland, Island, Litauen, Norge, Polen, Rumänien, Serbien, Spanien, Tyskland, Ukraina, USA. Omitted returns all countries. |
| sort_by | string | Sort order. Accepts exactly one of: chrono_desc, chrono_asc, alpha_asc, alpha_desc. |
| film_type | string | Filter by film type. Accepts exactly one of: Kortfilm, Långfilm. Omitted returns all types. |
{
"type": "object",
"fields": {
"page": "integer",
"items": "array of film summaries with id, title, title_extra, meta, film_type, link",
"total_count": "integer",
"items_per_page": "integer",
"available_countries": "array of strings",
"available_film_types": "array of strings"
},
"sample": {
"page": 1,
"items": [
{
"id": "709994",
"link": "/sv/item/?type=film&itemid=709994",
"meta": "Gustaf Skarsgård, Sverige m.fl.",
"title": "Kannibalen på Fårö (2027)",
"film_type": "Långfilm",
"title_extra": ""
}
],
"total_count": 184,
"items_per_page": 15,
"available_countries": [
"Sverige",
"Belgien",
"Danmark",
"Finland",
"Frankrike",
"Grekland",
"Island",
"Litauen",
"Norge",
"Polen",
"Rumänien",
"Serbien",
"Spanien",
"Tyskland",
"Ukraina",
"USA"
],
"available_film_types": [
"Kortfilm",
"Långfilm"
]
}
}About the Svensk Filmdatabas API
Listing Films in Production
The list_films_in_production endpoint returns up to 15 film summaries per page. Each item includes id, title, title_extra, meta, film_type, and link. You can filter results using film_type (accepts Kortfilm or Långfilm) and country (accepts Swedish country names such as Sverige, Danmark, or Frankrike). The sort_by parameter controls ordering: chrono_desc, chrono_asc, alpha_asc, or alpha_desc. The response also includes total_count, items_per_page, available_countries, and available_film_types to help drive UI pagination and filter controls.
Getting Film Details
The get_film_details endpoint accepts a film_id string (numeric, sourced from items[*].id in the list response) and returns a full record for that title. Fixed fields include title, year, category, film_type, director, producer, and screenplay. The cast field is an array of objects each containing name and role. The all_facts object captures every key-value pair from the film's fact table, which may include fields beyond the named top-level properties depending on the record.
Coverage and Scope
Data reflects Swedish films currently registered as in-production at Svensk Filmdatabas — both feature films (Långfilm) and short films (Kortfilm). Country filter values correspond to co-production countries listed on the source. Not all films will have complete cast or crew data; some director, producer, or screenplay fields may be empty strings depending on how completely a given title has been catalogued.
The Svensk Filmdatabas API is a managed, monitored endpoint for svenskfilmdatabas.se — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when svenskfilmdatabas.se changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official svenskfilmdatabas.se API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track all Swedish feature films (
Långfilm) currently in development and monitor new additions over time usinglist_films_in_productionwithfilm_typefilter - Build a co-production directory by filtering films by country (e.g.
FrankrikeorDanmark) to find Swedish-foreign co-productions - Populate a cast and crew database for in-production titles using the
castarray anddirector,producer,screenplayfields fromget_film_details - Feed a news or industry newsletter with a chronologically sorted list of recently added productions using
sort_by=chrono_desc - Identify short film productions in Sweden by filtering
list_films_in_productionwithfilm_type=Kortfilm - Enrich a film industry CRM by resolving film IDs from list results into full production records via
get_film_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Svensk Filmdatabas offer an official developer API?+
What does the `all_facts` field in `get_film_details` contain?+
director, producer, screenplay, year, category, film_type), but may also include additional production metadata depending on how completely a title has been catalogued in the database.Does the API cover films that have already been released, or only those currently in production?+
Can I filter by multiple countries or multiple film types at once?+
country takes a single country name and film_type takes either Kortfilm or Långfilm. Multi-value filtering is not supported in the current endpoints. You can fork this API on Parse and revise it to add multi-value filter logic.How complete is the cast data returned by `get_film_details`?+
cast array will contain objects with name and role for listed performers, but films early in production may have few or no cast members recorded. Fields like director and producer can also be empty strings for partially catalogued records.