Eurovision Results & Scoreboards avatar

Eurovision Results & Scoreboards

Pricing

from $0.85 / 1,000 country or votes

Go to Apify Store
Eurovision Results & Scoreboards

Eurovision Results & Scoreboards

Extract Eurovision Song Contest rankings, running order, total points, jury points, public points, and optional country-by-country vote details.

Pricing

from $0.85 / 1,000 country or votes

Rating

0.0

(0)

Developer

Trove Vault

Trove Vault

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

23 days ago

Last modified

Share

What does Eurovision Results & Scoreboards do?

Eurovision Results & Scoreboards returns normalized Eurovision Song Contest result rows for selected years and stages.

The default output is intentionally compact: one row per country in the selected stage, with rank, country, artist, song, running order, total points, and jury/public splits when records provide them. Country-by-country vote details are optional and are written to a separate Vote Details dataset.

The actor focuses on the senior Eurovision Song Contest. Junior Eurovision is not included in this version.

Why use Eurovision Results & Scoreboards?

Use this actor when you need a repeatable Eurovision dataset for dashboards, spreadsheets, editorial research, contest-week reporting, fan analytics, or data pipelines.

Main capabilities:

  • Export Eurovision final and semi-final result rows from 1956 onward.
  • Default to final-only output to reduce duplication and cost.
  • Include country, artist, song, running order, rank, qualification status, and points.
  • Include public and jury point splits when contest records provide them.
  • Optionally include country-by-country vote details for detailed analysis.
  • Append rows into an existing Apify dataset with datasetId.
  • Add your own workflow identifier with runId.

What data can it extract?

FieldTypeDescription
rowTypestringresult or entry
contestYearnumberEurovision Song Contest year
stageNamestringfinal, semifinal1, semifinal2, or entry_list
countryCode, countryNamestringCompeting country
artistName, songTitlestringEntry metadata
runningOrdernumberRunning order in the selected stage
placenumberStage ranking
qualifiedForFinalbooleanWhether a semi-finalist reached the final
totalPoints, publicPoints, juryPointsnumberAggregated result points
pointsBreakdownstringjury_public_split, total_only, or not_available
dataStatusstringNormalized data status
warningsarrayNotes about incomplete or ambiguous contest records
runIdstringOptional workflow identifier copied from input

How to use it

  1. Set Start Year and End Year.
  2. Keep Stages as Final only for the cleanest default dataset.
  3. Choose All stages or Semi-finals only when you need those stage rows.
  4. Leave Include Country-by-country Votes disabled for compact exports.
  5. Enable Include Country-by-country Votes only when you need voter-by-voter scoreboards.
  6. Run the actor and download the dataset as JSON, CSV, Excel, XML, or HTML.

Input

Example input:

{
"startYear": 2025,
"endYear": 2025,
"stages": ["final"],
"includeVoteDetails": false
}

For full contest research, set stages to ["all"]. A country that appears in a semi-final and the final will then have one result row for each stage. Enable includeVoteDetails only when you need the separate Vote Details dataset.

Output

Default result row:

{
"rowType": "result",
"dataStatus": "historical_records",
"contestYear": 2025,
"contestName": "Eurovision Song Contest 2025",
"stageName": "final",
"stageDate": "2025-05-17T00:00:00.000Z",
"countryCode": "AT",
"countryName": "Austria",
"artistName": "JJ",
"songTitle": "Wasted Love",
"runningOrder": 9,
"place": 1,
"qualifiedForFinal": true,
"totalPoints": 436,
"publicPoints": 178,
"juryPoints": 258,
"pointsBreakdown": "jury_public_split"
}

When includeVoteDetails is enabled, votes are written to the separate Vote Details dataset:

{
"rowType": "vote",
"contestYear": 2025,
"stageName": "final",
"countryName": "Austria",
"artistName": "JJ",
"songTitle": "Wasted Love",
"place": 1,
"voteType": "jury",
"fromCountryName": "Sweden",
"points": 12
}

API usage example

curl "https://api.apify.com/v2/acts/trovevault~eurovision-results-scoreboards/runs?waitForFinish=120" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startYear": 2025,
"endYear": 2025,
"stages": ["final"],
"includeVoteDetails": false
}'

Data semantics

Rows are stage-specific.

  • result rows are the main output: one country in one selected stage.
  • entry rows are emitted only when entry records are available but no stage result exists yet.
  • Country-by-country votes are written only to the Vote Details dataset when Include Country-by-country Votes is enabled. The default Eurovision Results dataset stays one row per country and stage.

The actor does not emit separate contest edition rows. Host metadata is intentionally excluded from the default dataset because it created sparse rows and duplicated result context.

Older contests may only have totalPoints. Modern finals commonly include publicPoints and juryPoints. The pointsBreakdown field tells you whether a row has jury_public_split, total_only, or not_available scoring.

Data Coverage

The actor normalizes public Eurovision contest records into clean Apify datasets. Fallback records may be used for recent years when the main historical records are not yet complete.

Limitations

This actor covers the senior Eurovision Song Contest only. It does not include Junior Eurovision, national finals, rehearsals, odds, lyrics, Spotify metrics, YouTube metrics, or broadcaster news.

TroveVault normalizes public contest records but does not certify legal finality, voting-rule interpretation, or completeness beyond available public records. Fallback rows are labeled with dataStatus and warnings so downstream users can handle incomplete records.

Some historical years do not include jury/public splits because those fields were not present in the contest records or did not apply to the contest format.

FAQ

Does this actor include Junior Eurovision?

No. This version is scoped to the senior Eurovision Song Contest.

Can I export only finals?

Yes. Final only is the default.

Why are some public or jury fields empty?

Older contests and some fallback records only expose total points. The actor does not invent splits when records do not provide them reliably.

How do I avoid large runs?

Keep Include Country-by-country Votes disabled and keep Stages set to Final only.

Can I append results to another dataset?

Yes. Fill datasetId to append the same rows to another Apify dataset in addition to the default run dataset.

Changelog

0.1

Initial version with normalized Eurovision final and semi-final result rows, optional vote-detail scoreboards, and labeled fallback support.