EuroMakers
  • Softver
  • Lansiranja
  • Journal
  • Oglašavanje
Prijavi
  • Softver
  • Lansiranja
  • Journal
  • Oglašavanje
Ponedjeljni pregledO nama
Prijavi svoj proizvod

API

Besplatan JSON API samo za čitanje, za objavljeni katalog. Ključ nije potreban.

Brzi početak

Svi proizvodi iz kataloga jednim zahtjevom:

curl https://www.euromakers.org/api/software
[
  {
    "id": "proton-mail",
    "name": "Proton Mail",
    "description": "End-to-end encrypted email from Switzerland.",
    …
  },
  …
]

Što koristiti?

  • Datoteke snimke: besplatne, čitljive s bilo koje web-stranice, svake noći ponovno izrađene, bez ograničenja. Za preglednike i poslove s cijelim katalogom.
  • API uživo: za vaš poslužitelj, oko 60 zahtjeva u minuti po IP adresi. Za jedan proizvod odjednom i svježije podatke.

Datoteke snimke

Objavljeni katalog kao statične JSON datoteke, svake noći ponovno izrađene. Ponovno se zapisuju samo promijenjene datoteke i nijedna se ne broji u ograničenje.

https://data.euromakers.org/v1/software.json

Niz proizvoda, poredan po id-u kategorije, a zatim po id-u. Isti JSON kao GET /api/software.

[
  {
    "id": "proton-mail",
    "name": "Proton Mail",
    "description": "End-to-end encrypted email from Switzerland.",
    …
  },
  …
]

https://data.euromakers.org/v1/countries.json

Niz naziva zemalja, svaki jednom, redoslijedom kataloga (nesortirano). Isti JSON kao GET /api/software/countries.

["Germany", "France", "Slovakia", "…"]

https://data.euromakers.org/v1/categories.json

Objekt iz id-a kategorije u broj proizvoda. Kategorije bez proizvoda su izostavljene. Isti JSON kao GET /api/categories/counts.

{
  "artificial-intelligence": 13,
  "cloud": 16,
  "communication": 14
}

https://data.euromakers.org/v1/alternatives.json

Poznati alati, svaki s ID-ovima proizvoda za isti posao, kao na stranicama alata.

[
  {
    "tool": "slack",
    "name": "Slack",
    "page": "https://www.euromakers.org/alternatives/slack",
    "ids": ["element", "rocket-chat", "…"]
  }
]

https://data.euromakers.org/v1/manifest.json

Kad su datoteke nastale, koliko stavki ima svaka, njihova veličina i SHA-256 te uvjeti.

{
  "version": "v1",
  "generatedAt": "2026-11-12T22:05:00.000Z",
  "docs": "https://www.euromakers.org/developers",
  "license": "Free for any use. Logos belong to their makers, and the directory can’t be resold in bulk.",
  "attribution": "Link back to EuroMakers (https://www.euromakers.org) where you show this data.",
  "terms": "https://www.euromakers.org/terms",
  "files": [
    {
      "name": "software.json",
      "url": "https://data.euromakers.org/v1/software.json",
      "items": "…",
      "bytes": "…",
      "sha256": "…"
    },
    "…"
  ]
}

S web-stranice:

const response = await fetch("https://data.euromakers.org/v1/software.json");
const products = await response.json();

Krajnje točke

Svaka krajnja točka na GET odgovara JSON-om. Primjeri odgovora su stvarni, ali skraćeni.

GET /api/software

Niz proizvoda, poredan po id-u kategorije, a zatim po id-u.

Parametri

Nema

Primjer
curl https://www.euromakers.org/api/software
Odgovor
[
  {
    "id": "proton-mail",
    "name": "Proton Mail",
    "description": "End-to-end encrypted email from Switzerland.",
    …
  },
  …
]
Pogreške

429 · 500 · 503

Predmemorija

Čuva se na rubu mreže do 24 sati i briše se kad se katalog promijeni. s-maxage=86400

GET /api/software/{id}

Jedan proizvod. Nepoznat ili neobjavljen id daje 404.

Parametri
  • id · string · path · obaveznoId proizvoda: mala slova, znamenke i crtice. ^[a-z0-9-]{1,80}$
Primjer
curl https://www.euromakers.org/api/software/proton-mail
Odgovor
{
  "id": "proton-mail",
  "name": "Proton Mail",
  "description": "End-to-end encrypted email from Switzerland.",
  "audience": ["b2b", "individual"],
  "country": "Switzerland",
  "website": "https://proton.me/mail",
  "longDescription": "Proton Mail is the flagship encrypted email …",
  "features": ["End-to-end encrypted email", "…"],
  "useCases": ["business-email"],
  "category": "communication"
}
Pogreške

404 · 429 · 500

Predmemorija

Čuva se na rubu mreže do 24 sati i briše se kad se katalog promijeni. s-maxage=86400

GET /api/software/countries

Niz naziva zemalja, svaki jednom, redoslijedom kataloga (nesortirano).

Parametri

Nema

Primjer
curl https://www.euromakers.org/api/software/countries
Odgovor
["Germany", "France", "Slovakia", "…"]
Pogreške

429 · 500 · 503

Predmemorija

Čuva se na rubu mreže do 24 sati i briše se kad se katalog promijeni. s-maxage=86400

GET /api/categories/counts

Objekt iz id-a kategorije u broj proizvoda. Kategorije bez proizvoda su izostavljene.

Parametri

Nema

Primjer
curl https://www.euromakers.org/api/categories/counts
Odgovor
{
  "artificial-intelligence": 13,
  "cloud": 16,
  "communication": 14
}
Pogreške

429 · 500 · 503

Predmemorija

Čuva se na rubu mreže do 24 sati i briše se kad se katalog promijeni. s-maxage=86400

Proizvod

Svaki proizvod ima ova polja. Neobavezna se izostavljaju kad su prazna.

id · string
Stalan id, ujedno kraj adrese stranice proizvoda.
name · string
Naziv proizvoda.
description · string
Opis u jednoj rečenici.
audience · string[]
Kome je namijenjen: b2b, individual ili oboje.
country · string
Zemlja podrijetla.
website · uri
Web-stranica proizvoda.
longDescription · string
Nekoliko odlomaka o proizvodu.
features · string[]
Glavne značajke.
useCases · string[]
Od jednog do četiri id-a namjena.
category · string
Id kategorije, kao u /categories/{id}.
verified · boolean
neobavezno · true kad je tvorac potvrdio vlasništvo; inače ga nema.
logoUrl · uri
neobavezno · Logotip (PNG, JPEG ili WebP); nema ga ako logotipa nema.

Isto kao TypeScript tipovi:

export interface Software {
  /** Stable id, also the end of the product’s page address. */
  id: string;
  /** Product name. */
  name: string;
  /** One-sentence description. */
  description: string;
  /** Who it’s for: b2b, individual or both. */
  audience: ("b2b" | "individual")[];
  /** Country of origin. */
  country: string;
  /** The product’s website. */
  website: string;
  /** A few paragraphs about the product. */
  longDescription: string;
  /** Main features. */
  features: string[];
  /** One to four use-case ids. */
  useCases: string[];
  /** Category id, as in /categories/{id}. */
  category: string;
  /** true when the maker verified ownership; absent otherwise. */
  verified?: true;
  /** Logo (PNG, JPEG or WebP); absent when there is none. */
  logoUrl?: string;
}

/** countries.json, GET /api/software/countries */
export type Countries = string[];

/** categories.json, GET /api/categories/counts */
export type CategoryCounts = Record<string, number>;

/** One entry of alternatives.json */
export interface Alternative {
  tool: string;
  name: string;
  page: string;
  ids: string[];
}

Pogreške

Pogreške su JSON s porukom, stalnim kodom i savjetom:

{
  "code": "not_found",
  "error": "Software not found",
  "hint": "List known ids with GET /api/software, then retry with an existing kebab-case id."
}
StatusKodKada
404not_foundNepoznat id ili na toj putanji nema krajnje točke.
429rate_limitedPrekoračeno ograničenje zahtjeva.
500internal_errorNešto je pošlo po zlu kod nas.
503catalog_unavailableKatalog se nije mogao učitati.

Ograničenja zahtjeva

60 zahtjeva u 60 sekundi po IP adresi, zajednički za sve krajnje točke, uključujući odgovore iz predmemorije. Iznad ograničenja dobivate 429 sa zaglavljima Retry-After (u sekundama) i X-RateLimit-Limit. Kad je API u cjelini jako opterećen, može odgovoriti 429 i prije nego što dosegnete svoje ograničenje.

Pošteno korištenje: ako vam treba više, koristite datoteke snimke.

Uvjetni zahtjevi

Svaki odgovor nosi ETag. Pošaljite ga natrag u If-None-Match i nepromijenjen odgovor bit će 304 bez sadržaja.

curl -i https://www.euromakers.org/api/software/proton-mail -H 'If-None-Match: "<ETag of the last answer>"'

CORS

API uživo ne šalje CORS zaglavlja, pa ga preglednik na drugoj stranici ne može pročitati. U pregledniku koristite datoteke snimke: može ih čitati bilo koja web-stranica.

Verzije

Ovo je verzija 1 API-ja i datoteka snimke. Samo dodajemo: nijedna putanja, polje ni tip se ne mijenja niti nestaje. Nekompatibilna promjena došla bi kao nova verzija uz ovu.

Korištenje i navođenje izvora

API je besplatan za svaku upotrebu. Stavite poveznicu na EuroMakers ondje gdje prikazujete njegove podatke. Logotipi pripadaju svojim tvorcima, a katalog se ne smije preprodavati u cijelosti.

Uvjeti korištenja

Strojno čitljivo

  • /openapi.json · OpenAPI 3.1 opis svake krajnje točke
  • /llms.txt · Sažetak stranice za jezične modele
  • https://data.euromakers.org/v1/manifest.json · Kad su datoteke nastale, koliko stavki ima svaka, njihova veličina i SHA-256 te uvjeti.
EuroMakers

Dom europskog softvera.

Otkrij

  • Sav softver
  • Po alatu
  • Lansiranja
  • Karta

Zajednica

  • Journal
  • Ponedjeljni pregled
  • Tvoj feed

Za tvorce

  • Prijavi svoj proizvod
  • Preuzmi svoj unos
  • Oglašavanje
  • Kriteriji za uvrštavanje

EuroMakers

  • O nama
  • Kontakt
  • API
  • Privatnost
  • Uvjeti
Pogledaj kartu →

© 2026 EuroMakers. Napravljeno s uvjerenjem u Europi. Logotipi proizvoda pripadaju njihovim tvorcima.

Jezik: Hrvatski
  • English
  • Български
  • Čeština
  • Dansk
  • Deutsch
  • Ελληνικά
  • Español
  • Eesti
  • Suomi
  • Français
  • Gaeilge
  • Hrvatski
  • Magyar
  • Italiano
  • Lietuvių
  • Latviešu
  • Malti
  • Nederlands
  • Polski
  • Português
  • Română
  • Slovenčina
  • Slovenščina
  • Svenska