FFF Football Clubs · French Directory
Pricing
from $5.24 / 1,000 club rows
FFF Football Clubs · French Directory
Export French football club contacts from FFF. Names, emails, phones, websites and GPS — one row per club. Public FFF club directory. No login. No API key.
Pricing
from $5.24 / 1,000 club rows
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export French football club contacts from the public FFF (Fédération Française de Football) club directory. Pick a department (or nationwide) and get one row per club: name, address, published email and phone, website, GPS and social links when the federation published them.
No login. No API key. No federation account. Emails, phones and websites are published on the public club directory — this Actor does not log in.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| Sportswear or equipment brand | Prospect list of clubs that buy kits, balls, goals | One department first, then All departments |
| Tournament or event organiser | Clubs that can host or fill a competition | Your département + neighbouring codes |
| Agency / outbound | CRM feed with mailbox, phone and website | Overview or Outreach CRM view |
| Local authority / school sport | Territory map of football clubs | One code, then neighbours |
| Data / ops | Scheduled master table of the federation | departments: ["ALL"], maxItems: 0 |
What you get by default. Club name, department, town, address, GPS, FFF club page, website, email and phone when the federation published them. Facebook and Instagram URLs when they appear in the public contacts. Generic federation mailboxes (contact@fff.fr and other @fff.fr inboxes) and district-only shells are skipped. This Actor never invents a mailbox.
When to go nationwide. Use All departments on a paid plan with maxItems: 0. Corsica (2A / 2B) and overseas departments are included. A full France export is a long run — keep the Try example on Paris with 20 clubs.
How to use
- Open the Actor in Apify Console.
- Pick one or more departments, or All departments.
- Keep Max clubs at 20 for a first run (Free plan is always 20 per run). Set 0 on a paid plan for a full export of the selection.
- Click Start. Rows appear in the Dataset while the run is still listing other departments.
Ready-made examples (published tasks)
| Example | Best for |
|---|---|
| Find Paris football clubs with published contacts | First run / Île-de-France |
| Rhône football clubs, CRM-ready emails and phones | CRM import |
| La Réunion FFF football club directory | Overseas department |
| Find Ain football clubs from the FFF directory | B2B test / Auvergne-Rhône-Alpes |
Landing page URLs appear after each task is published in Console.
What it extracts
| Category | Fields |
|---|---|
| Identity | Club name, FFF affiliation number |
| Location | Department, town, postcode, address, GPS |
| Contact | Email, phone, website (when published) |
| Social | Facebook, Instagram (when published) |
| Source | FFF club information page |
Typical coverage
On a Paris listing, every row has a club name, department and directory URL. Emails are public on the club directory (club mailboxes, not player accounts). Phone, website and social links follow what FFF shows — empty fields are omitted. This Actor never invents a mailbox or a number.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
departments | array | ["75"] | Department codes, or ALL for nationwide including Corsica. Omitted = Paris. Empty array = nationwide. |
maxItems | integer | 20 | 0 = no row ceiling. Free plan: 20 / run. |
API-only keys
Not shown on the Console form. Safe defaults are already in code.
| Key | Type | Default | Notes |
|---|---|---|---|
maxConcurrency | integer | 4 | Departments in parallel (1–8) |
delayBetweenRequests | integer | 80 | Pause between listing pages (ms) |
proxyConfiguration | object | Unblocker on cloud | Pass via API/JSON if you need a custom proxy |
verboseLogs | boolean | false | API-only debug traces |
Examples
Paris (Try):
{ "departments": ["75"], "maxItems": 20 }
Nationwide, paid plan, no row ceiling:
{ "departments": ["ALL"], "maxItems": 0 }
Corsica (2A / 2B) and Alsace:
{ "departments": ["2A", "2B", "67", "68"], "maxItems": 0 }
Output sample
{"clubId": "500123","structureNumber": "500123","structureName": "Example Football Club","departmentNumber": "75","town": "PARIS","postalCode": "75013","address": "12 RUE EXAMPLE","latitude": 48.829136,"longitude": 2.353732,"contactEmail": "contact@example-fc.fr","contactPhone": "01 23 45 67 89","website": "https://www.example-fc.fr","facebookUrl": "https://www.facebook.com/examplefc","instagramUrl": "https://www.instagram.com/examplefc","url": "https://www.fff.fr/competition/club/500123-example-football-club/information.html"}
You can download the dataset as JSON, HTML, CSV or Excel.
How it works
- Reads the public FFF club directory for each selected department.
- Keeps clubs whose department matches your selection (a district can cover more than one code).
- Deduplicates clubs by affiliation number and skips federation headquarters and district-only shells.
- Writes each row to the dataset as soon as it is complete.
How much does it cost to scrape FFF clubs?
HTTP-only — no browser. You pay pay-per-event on the Store: about $0.00749 per exported club plus a negligible run start.
| Scenario | Approx. cost |
|---|---|
| 20 clubs (Try / Free plan) | ~$0.15 |
| 1,000 clubs | ~$7.49 |
Full selection with maxItems: 0 | $0.00749 × clubs exported |
Is scraping FFF free?
Apify Free plan users get 20 clubs per run. Paid plans follow PPE and your max charge. Compute is cheap because this Actor does not launch a browser.
Is it legal to scrape FFF?
This Actor only accesses data that FFF makes publicly available in its club directory. As with any data containing personal information, ensure your use complies with GDPR and relevant regulations.
Local development
cd fff-clubs-scrapernpm installapify run --input-file=./.actor/INPUT.json
storage/key_value_stores/default/INPUT.json must satisfy the input schema, or pass --input-file. On local apify run, platform/CLI input overwrites overlapping keys from a root input.json.
Support
Contact corentin@outreacher.fr if you need a custom scraper or tailored automation.
Also available
Also available as a pack: France Sports Clubs hub — merge several federations into one dataset.
Same job (French department → published club contacts). One Actor per federation.
| Sport | Actor |
|---|---|
| Hiking (FFRandonnée) | ffr-clubs-scraper |
| Athletics (FFA) | ffa-clubs-scraper |
| Judo (FFJDA) | ffjda-clubs-scraper |
| Rugby (FFR) | ffr-rugby-clubs-scraper |
| Equestrian (FFE) | ffe-clubs-scraper |
| Swimming (FFN) | ffn-clubs-scraper |
| Basketball (FFBB) | ffbb-clubs-scraper |
| Handball (FFHandball) | ffhandball-clubs-scraper |
| Volleyball (FFVolley) | ffvolley-clubs-scraper |
| Climbing (FFME) | ffme-clubs-scraper |
| Canoe (FFCK) | ffck-clubs-scraper |
| Golf (FFGolf) | ffgolf-clubs-scraper |
| Chess (FFÉchecs) | ffechecs-clubs-scraper |
| Gymnastics (FFGym) | ffgym-clubs-scraper |
| Badminton (FFBaD) | ffbad-clubs-scraper |
| Football (FFF) | fff-clubs-scraper |