Hürriyet API

HealthyRead-only

Latest Turkish news from Hürriyet: a combined newest-first feed across sections (gündem, ekonomi, dünya, spor, ...) with headline, summary, image, section, publish time, author, URL and full article text, plus per-section feeds and single-article lookup. Generated from www.hurriyet.com.tr.

Base URL
https://api.maviapi.com/v1/sites/hurriyet
Version
3
Endpoints
1220ms
p50 latency
12
Calls / 30d
GET/latest

Initial release

The newest Hürriyet articles merged across sections (default 20, newest first), each with headline, summary, image, section, publish time, author, URL and full text. Refreshed every ~3 minutes.

Bearer auth. Pass your key as Authorization: Bearer <key> on every request.
integerOptionalin query

Articles to return (max 50)

integerOptionalin query

Number of articles to skip

stringOptionalin query

Optional comma-separated subset of section feeds to merge (default: gundem,ekonomi,dunya,spor,magazin,teknoloji,egitim,yerel-haberler,kelebek,yazarlar). Valid: gundem, ekonomi, dunya, spor, magazin, teknoloji, egitim, yerel-haberler, kelebek, yazarlar, yasam, seyahat, kitap-sanat, aile

booleanOptionalin query

Bypass and repopulate the cache

dataobject
cachedboolean
sourceobjectMap of section -> RSS feed URL merged
paginationobject
Try itLive
GET
https://api.maviapi.com/v1/sites/hurriyet/latest?limit=20&offset=0&sections=gundem%2Cekonomi%2Cspor&refresh=false
Request
curl "https://api.maviapi.com/v1/sites/hurriyet/latest?limit=20&offset=0&sections=gundem%2Cekonomi%2Cspor&refresh=false" \
-H "Authorization: Bearer $MAVI_KEY"
Example1.3 KB
{
  "data": {
    "sections": [
      {
        "slug": "gundem",
        "name": "Gündem"
      }
    ],
    "count": 20,
    "articles": [
      {
        "id": "43369712",
        "url": "https://www.hurriyet.com.tr/gundem/tekirdag-buyuksehir-belediye-baskani-candan-yuceer-yeni-partiden-istifa-etti-43369712",
        "title": "Tekirdağ Büyükşehir Belediye Başkanı Candan Yüceer, Yeni Parti'den istifa etti",
        "summary": "Tekirdağ Büyükşehir Belediye Başkanı Candan Yüceer, Yeni Parti'den istifa etti...",
        "section": "Gündem",
        "subsection": "Gündem",
        "feed": "gundem",
        "image": "https://image.hurimg.com/i/hurriyet/90/620x350/6aef30c1aa7d7bef197666f6.jpg",
        "published_at": "2026-11-07T13:52:00.000Z",
        "updated_at": "2026-11-07T14:08:44.000Z",
        "author": "Tayibe Önel",
        "text": "Tekirdağ Büyükşehir Belediye Başkanı Candan Yüceer, Yeni Parti'den istifa ettiğini duyurdu.\n\n...",
        "html": "<p>Tekirdağ Büyükşehir Belediye Başkanı Candan Y&uuml;ceer, ...</p>"
      }
    ]
  },
  "cached": false,
  "source": {
    "gundem": "https://www.hurriyet.com.tr/rss/gundem",
    "ekonomi": "https://www.hurriyet.com.tr/rss/ekonomi"
  },
  "pagination": {
    "total": 50,
    "limit": 20,
    "offset": 0,
    "count": 20,
    "has_more": true
  }
}

Get all the data, no code

Collect every page of GET /latest into a dataset, then download it as CSV or JSON. One credit per page; the download is free.

Use Hürriyet API from Claude, Cursor and other AI agents

The maviapi MCP server exposes every endpoint of this API as a typed tool. Works with no key on the shared demo limits.

Other clients
claude mcp add maviapi -e MAVIAPI_TOOLS=hurriyet -- npx -y '@maviapi/mcp'

Build with the Hürriyet API

Start with the operation and schema your application needs. This reference is generated from the currently published build, so its parameters and fields describe the API you can call. Use the console to inspect a response before adding it to a production workflow. The examples illustrate the response shape; they are not a promise that a particular record or value will still exist when you make a request.

For a dashboard or internal tool, fetch the specific data your screen needs and handle empty results explicitly. For a recurring collection, check whether the selected endpoint returns a paginated collection and supports saving to a dataset. A dataset can be exported as CSV or JSON and refreshed on a schedule. Review current plans and credit limits before running a large collection; a single export can require more than one API request.

Choose a starting endpoint

  • GET /latest

    The newest Hürriyet articles merged across sections (default 20, newest first), each with headline, summary, image, section, publish time, author, URL and full text. Refreshed every ~3 minutes.

    Parameters and response fields for GET /latest
    Request parameters
    NameType / locationRequiredDescription
    limitinteger / queryNoArticles to return (max 50)
    offsetinteger / queryNoNumber of articles to skip
    sectionsstring / queryNoOptional comma-separated subset of section feeds to merge (default: gundem,ekonomi,dunya,spor,magazin,teknoloji,egitim,yerel-haberler,kelebek,yazarlar). Valid: gundem, ekonomi, dunya, spor, magazin, teknoloji, egitim, yerel-haberler, kelebek, yazarlar, yasam, seyahat, kitap-sanat, aile
    refreshboolean / queryNoBypass and repopulate the cache
    Top-level response fields
    FieldTypeDescription
    dataobject
    cachedboolean
    sourceobjectMap of section -> RSS feed URL merged
    paginationobject
  • GET /section/{section}

    Latest articles of one Hürriyet section, newest first, with full text (no author).

    Parameters and response fields for GET /section/{section}
    Request parameters
    NameType / locationRequiredDescription
    sectionstring / pathYesSection feed Allowed values: gundem, ekonomi, dunya, spor, magazin, teknoloji, egitim, yerel-haberler, kelebek, yazarlar, yasam, seyahat, kitap-sanat, aile.
    limitinteger / queryNoArticles per page
    offsetinteger / queryNoNumber of articles to skip
    refreshboolean / queryNoBypass and repopulate the cache
    Top-level response fields
    FieldTypeDescription
    dataobject
    cachedboolean
    sourcestring
    paginationobject
  • GET /article

    A single Hürriyet article by URL: headline, author, section, dates, image, keywords and full text.

    Parameters and response fields for GET /article
    Request parameters
    NameType / locationRequiredDescription
    urlstring / queryYesHürriyet article URL
    refreshboolean / queryNoBypass and repopulate the cache
    Top-level response fields
    FieldTypeDescription
    dataobject
    cachedboolean
    sourcestring

Integration questions

Is this the official Hürriyet API?

This is an independent API hosted by maviapi for data from https://www.hurriyet.com.tr. Its available operations are the endpoints in this reference. It does not imply a partnership with the source website or access to that website's private data. Check the source's own developer documentation separately if you need its official API or a feature outside this schema.

What can I do with this Hürriyet integration?

Latest Turkish news from Hürriyet: a combined newest-first feed across sections (gündem, ekonomi, dünya, spor, ...) with headline, summary, image, section, publish time, author, URL and full article text, plus per-section feeds and single-article lookup. The current reference contains 3 endpoints. All published endpoints use GET, so this build is for reading data, not changing the source website. Choose the operation that matches your workflow, then inspect its required parameters and response fields. Do not assume an unlisted operation is supported.

How do I authenticate and try a request?

Create a maviapi API key in the dashboard and send it in the Authorization header as Bearer followed by your key. The interactive console above provides parameter forms and cURL, Node.js and Python examples for the selected endpoint. Replace example values with inputs for your task. Keep your key in server-side environment variables; do not put it in a public repository or a browser bundle.

What happens when the source website changes?

maviapi checks endpoint health and attempts repairs when it detects failures. A repair must pass verification before becoming active. This reduces manual scraper maintenance, but does not guarantee that every source is reachable at every moment. Check the status page for current health and this API’s changelog for build history. Handle failed requests in your application and retry with a bounded backoff rather than an unbounded loop.

How do I keep my integration compatible?

Use the published input and output schema as the contract for the build you call. Required parameters, field types and available operations can differ between builds, so review the changelog before adopting a new version. Where you need stable behavior, configure a build pin for your API key. Include validation and error handling at your application boundary instead of assuming example response values will always be present.

  • Hacker News

    Hacker News story lists (front page, newest, Ask HN, Show HN) with rank, title, url, site, points, author, comment count and age, plus any item's details and its full nested comment thread.

Browse the full API catalog