10 News API Filter Patterns You Should Know (2026)

Erick Horn

Erick Horn

·

26 mins Læs

10 News API Filter Patterns You Should Know (2026)

10 News API Filter Patterns Every Developer Should Know (2026)

Nyhedsfiltrering API kombinerer forespørgselsparametre — titelsøgning, datoer, kilder, entiteter, sentiment, kategorier — for at indsnævre et nyhedsfeed fra millioner af artikler til dem, din app har brug for. En moderne nyheds-API klassificerer hver artikel på dimensioner, du kan filtrere direkte (entitet, sentiment, kategori, kildeland), så én anmodning erstatter en hel NLP-pipeline. De fleste leverandørdokumenter angiver parametre, men viser aldrig, hvordan en reel kombineret forespørgsel ser ud, hvad der returneres, eller hvor faldgruberne er.

Dette indlæg er til udviklere, der integrerer en nyheds-API og ønsker copy-paste eksempler, der kører. Hvert mønster nedenfor bruger APITube's /v1/news/everything-endepunkt, med cross-API oversættelseslinjer, hvor syntaksen adskiller sig i NewsAPI.org eller NewsData.io. Hvert mønster inkluderer curl, et Python-uddrag, et trimmet JSON-svar og den faldgrube, der spilder din første dag.

Afsløring: Jeg arbejder hos APITube. Mønstrene kortlægges rent til andre store nyheds-API'er — oversættelseslinjer inkluderet, hvor syntaksen afviger.

10 Patterns at a Glance

  1. Søgeord & eksakt-frase titelsøgning (title, "...", ~N)
  2. Ekskludering af termer og matchning efter position (ignore.title, title_starts_with, title_ends_with)
  3. Datointervalfilter (published_at.start, published_at.end)
  4. Sprog + kildeland-filter (language.code, source.country.code)
  5. Kilde domæne inkluder / ekskluder (source.domain, ignore.source.domain)
  6. Enhedsfilter (entity.id)
  7. Sentiment polaritetsfilter (sentiment.body.polarity)
  8. Kategori + branchefilter (category.id, industry.id)
  9. Sammensat forespørgsel (entitet + sentiment + dato + sprog + kildeland)
  10. Paginering + sortering (per_page, page, sort.by, sort.order)

Alle eksempler antager export APITUBE_KEY=... og grundlæggende URL https://api.apitube.io. Godkend med X-API-Key-headeren (eller en api_key query-parameter).

1. Søgning på nøgleord & eksakt frase i titel

APITube søger i artiklen title. Pas almindelige ord for løs matching, eller omslut en sætning i anførselstegn for et nøjagtigt, in-order match. Nøgleordsøgning udvider synonymer og morfologiske former; citerede sætninger gør det ikke.

curl -sS 'https://api.apitube.io/v1/news/everything?title="apple vision pro"&per_page=10' \
  -H "X-API-Key: $APITUBE_KEY"
import requests, os
r = requests.get(
    "https://api.apitube.io/v1/news/everything",
    params={"title": '"apple vision pro"', "per_page": 10},
    headers={"X-API-Key": os.environ["APITUBE_KEY"]},
)
print(r.json()["results"][0]["title"])

JSON respons (uddrag):

{
  "status": "ok",
  "results": [
    {"id": "a1b2", "title": "Apple Vision Pro sales beat estimates", "href": "https://...", "published_at": "2026-05-02T14:11:00Z", "source": {"domain": "reuters.com"}}
  ],
  "has_next_pages": true
}

Tre matchende tilstande:

  • Nøgleord — title=bitcoin eller title=AI,innovation (kommaseparerede termer, vilkårlig rækkefølge, med synonym/morfologi-udvidelse).
  • Sætning — title="breaking news" (præcis sætning, ingen udvidelse).
  • Nærhed — title="apple iphone"~5 (ord inden for N tokens af hinanden, N = 0–10).

Faldgrube: APITube matcher mod titlen, ikke hele brødteksten — der er ingen body søgeparameter. Titlen er det stærkeste relevanssignal, så dette er med vilje, men et nøgleord begravet kun i artikelbrødteksten vil ikke matche. Den fulde body returneres i hvert resultat, så filtrer efter det, hvis du har brug for brødtekst-niveau matching. Mellemrum inde i en citeret frase kræver stadig URL-kodning (%20 eller +).

Tværs-API: NewsAPI.org bruger et enkelt q felt, der søger i titel + brødtekst. APITube filtrerer specifikt på title og viser de klassificerede dimensioner nedenfor (enhed, sentiment, kategori), så du sjældent har brug for rå brødtekstsøgning.

2. Ekskludering af vilkår og matchning efter position

Indsnævr en titelsøgning uden boolske operatorer: udeluk termer med ignore.title, og forankr matches med title_starts_with / title_ends_with / title_pattern. APITube parser ikke AND/OR/NOT inde i en værdi — disse ord behandles som almindelige tokens — så udelukkelse er sin egen parameter.

curl -sS 'https://api.apitube.io/v1/news/everything?title=tesla&ignore.title=rumor&title_starts_with=Breaking' \
  -H "X-API-Key: $APITUBE_KEY"
params = {"title": "tesla", "ignore.title": "rumor", "title_starts_with": "Breaking", "per_page": 20}
r = requests.get(API, params=params, headers=HEADERS)

JSON respons (uddrag):

{"results": [{"title": "Breaking: Tesla Q1 earnings beat estimates", "sentiment": {"body": {"polarity": "positive"}}}], "has_next_pages": true}

Faldgrube: forsøg ikke at skrive title=(tesla OR rivian) AND earnings NOT rumor — der er intet boolesk forespørgselssprog. OR, AND, NOT ville blive søgt som bogstavelige ord. Brug kommaseparerede termer for OR-stil bredde (title=tesla,rivian), ignore.title for eksklusion, og kør separate kald, hvis du har brug for AND-logik på tværs af termer.

Kryds-API: NewsAPI.org understøtter AND/OR/NOT inden for q. NewsData.io bruger kommasepareret q_or og et separat eksklusionsfelt. APITube holder inklusion og eksklusion som adskilte parametre.

3. Dato-intervalfilter

Begræns artikler til et publiceret vindue ved hjælp af published_at.start og published_at.end. Begge accepterer ISO 8601 tidsstempler.

curl -sS 'https://api.apitube.io/v1/news/everything?published_at.start=2026-04-01T00:00:00Z&published_at.end=2026-04-30T23:59:59Z&language.code=en' \
  -H "X-API-Key: $APITUBE_KEY"
params = {
    "published_at.start": "2026-04-01T00:00:00Z",
    "published_at.end": "2026-04-30T23:59:59Z",
    "language.code": "en",
}

JSON uddrag:

{"results": [{"published_at": "2026-04-15T08:42:00Z", "title": "..."}], "has_next_pages": true}

Faldgrube: bare datoer som 2026-04-01 virker, men API behandler dem som midnat UTC. Hvis du har brug for en specifik tidszone, tilføj den eksplicit. APITube accepterer også Solr-stil relative datoer (NOW-7DAYS, NOW-1MONTH/DAY). Locale-formaterede strenge som 04/01/2026 er ikke gyldige og returnerer lydløst nul resultater.

4. Sprog + Kildeland-filter

Filtrer efter artikelsprog og kildeland uafhængigt. Sprog bruger ISO 639-1-koder; land bruger ISO 3166-1 alpha-2 (præcis to tegn).

curl -sS 'https://api.apitube.io/v1/news/everything?language.code=de&source.country.code=de&title=KI' \
  -H "X-API-Key: $APITUBE_KEY"
params = {"language.code": "de", "source.country.code": "de", "title": "KI"}

Faldgrube: parameteren er source.country.code, ikke country.code — og den filtrerer efter udgiverens land, ikke hvor historien handler om. Et tysk medie, der skriver om Brasilien, har stadig source.country.code=de. For at filtrere efter historie-lokation, brug lokationsparametrene (location.name) eller en entity.id for landet.

5. Inkluder/Ekskluder Kildedomæne

Begræns til specifikke kilder med source.domain; udeluk kilder med ignore.source.domain. Begge tager eksakte domænenavne (opløst mod APITube's kildedirektorium) og accepterer op til tre kommaseparerede værdier.

curl -sS 'https://api.apitube.io/v1/news/everything?source.domain=reuters.com&title=fed' \
  -H "X-API-Key: $APITUBE_KEY"

For at udelukke kilder, brug den dedikerede ignore-parameter:

curl -sS 'https://api.apitube.io/v1/news/everything?title=crypto&ignore.source.domain=coindesk.com,cointelegraph.com' \
  -H "X-API-Key: $APITUBE_KEY"

JSON uddrag:

{"results": [{"source": {"domain": "reuters.com", "location": {"country_code": "us"}}}]}

Faldgrube: domæne-matching er eksakt, og der er ingen wildcards — reuters.com matcher ikke uk.reuters.com, og *.reuters.com understøttes ikke. Der er ingen boolesk negation inde i source.domain; eksklusion lever i den separate ignore.source.domain parameter. Hver side begrænses til tre domæner pr. anmodning.

Kryds-API: NewsAPI.org bruger domains= og excludeDomains= (kommalister). APITube deler inkludering/eksludering i source.domain og ignore.source.domain.

6. Entitetsfilter

Filtrer efter en specifik person, organisation eller et brand ved hjælp af entity.id. Entitets-ID'er er stabile numeriske identifikatorer; entitetsnavne er det ikke.

curl -sS 'https://api.apitube.io/v1/news/everything?entity.id=1278268&language.code=en' \
  -H "X-API-Key: $APITUBE_KEY"
params = {"entity.id": "1278268", "language.code": "en", "per_page": 25}

JSON uddrag:

{"results": [{"title": "...", "entities": [{"id": 1278268, "name": "...", "type": "person", "links": {"wikidata": "https://www.wikidata.org/wiki/..."}}]}]}

Faldgrube: entity.id er APITube's numeriske entitetsidentifikator (e.g. 1278268), ikke en Wikidata Q-ID — at sende Q312 returnerer en valideringsfejl. Slå ID'et op fra entities[]-arrayet i et hvilket som helst resultat, eller via /v1/news/entity-endepunktet; hvert resultat indeholder også en links.wikidata URL, hvis du har brug for at krydsreferere. Du kan sende op til tre ID'er kommasepareret (ELLER logik). Filtrering efter entitet afklarer "Apple" firmaet fra frugten, fordi genkenderen allerede har klassificeret hver omtale — den enkelt største nøjagtighedsopgradering over nøgleordsøgning.

Kryds-API: NewsAPI.org har ingen enhedsfiltrering. NewsAPI.ai (Event Registry) og APITube understøtter begge det; APITube bruger sine egne numeriske ID'er og linker ud til Wikidata i svaret.

7. Sentiment Polaritetsfilter

Filtrer til artikler med en given sentiment-polaritet i brødteksten, titlen eller samlet. Polaritet beregnes pr. dokument ved indtagelse; gyldige værdier er positive, negative og neutral.

curl -sS 'https://api.apitube.io/v1/news/everything?entity.id=1278268&sentiment.body.polarity=negative&per_page=20' \
  -H "X-API-Key: $APITUBE_KEY"
params = {
    "entity.id": "1278268",
    "sentiment.body.polarity": "negative",
    "published_at.start": "2026-05-01",
}

JSON uddrag:

{"results": [{"title": "...", "sentiment": {"body": {"polarity": "negative", "score": -0.62}}}]}

Faldgrube: sentiment er pr. dokument, ikke pr. claim. En artikel, der er for det meste positiv, men citerer én kritisk analytiker, er stadig mærket positive. Der er tre uafhængige akser — sentiment.title.polarity, sentiment.body.polarity, sentiment.overall.polarity — plus score-intervaller (sentiment.body.score.min / .max). For claim-niveau sentiment, post-process den returnerede body med en LLM.

8. Kategori + Branchefilter

Indsnævr efter emnekategori (category.id) og brancheklassifikation (industry.id). Begge er uafhængige taksonomier, og begge tager deres egne identifikatorer — ikke free-text slugs.

curl -sS 'https://api.apitube.io/v1/news/everything?category.id=medtop:15000000&industry.id=400&language.code=en' \
  -H "X-API-Key: $APITUBE_KEY"

JSON uddrag:

{"results": [{"categories": [{"id": "medtop:15000000", "name": "Sport", "taxonomy": "iptc"}], "industries": [{"id": 400, "name": "..."}]}]}

Faldgrube: category.id er en IPTC medie-emne-kode (e.g. medtop:15000000), og industry.id er en numerisk ID (e.g. 400) — ingen af dem accepterer et simpelt ord som technology eller software, hvilket returnerer en "ikke fundet"-fejl. Hent de gyldige koder fra listen over kategorier eller fra /v1/news/category- og /v1/news/industry-endepunkterne. Kategori og branche er ortogonale akser, ikke et hierarki, så at stable et snævert par kan producere en næsten tom skæring — brug en som primær, den anden som forfining.

9. Sammensat Forespørgsel — Stable 4+ Dimensioner i Ét Kald

Mønsteret, som de fleste leverandørdokumentationer aldrig viser: kombiner entitet + sentiment + dato-interval + sprog + kildeland i én enkelt anmodning.

curl -sS 'https://api.apitube.io/v1/news/everything?entity.id=1278268&sentiment.body.polarity=negative&published_at.start=2026-04-01T00:00:00Z&published_at.end=2026-05-01T00:00:00Z&language.code=en&source.country.code=us&per_page=50' \
  -H "X-API-Key: $APITUBE_KEY"
params = {
    "entity.id": "1278268",
    "sentiment.body.polarity": "negative",
    "published_at.start": "2026-04-01T00:00:00Z",
    "published_at.end": "2026-05-01T00:00:00Z",
    "language.code": "en",
    "source.country.code": "us",
    "per_page": 50,
}
r = requests.get(API, params=params, headers=HEADERS)

JSON uddrag:

{
  "status": "ok",
  "results": [
    {
      "title": "...",
      "published_at": "2026-04-12T18:30:00Z",
      "source": {"domain": "wsj.com", "location": {"country_code": "us"}},
      "entities": [{"id": 1278268, "name": "...", "type": "organization"}],
      "sentiment": {"body": {"polarity": "negative", "score": -0.71}}
    }
  ],
  "has_next_pages": false
}

Dette er den forespørgsel, du ønsker til brandovervågning, alarmering om negativ dækning i et specifikt marked eller træning af en sentimentmodel. At køre den som fem separate kald og flette på klientsiden brænder din kvote 5x for det samme svar.

Faldgrube: hvert yderligere filter indsnævrer resultat-sættet multiplikativt. En 5-dimensionel forespørgsel kan returnere nul rækker i langsomme nyhedsuge — tjek has_next_pages og håndter tomme results-arrays yndefuldt.

10. Paginering + Sortering

Brug per_page med page til at gennemgå resultater; sorter med sort.by og sort.order.per_page er som standard 100 og begrænset til 250.

curl -sS 'https://api.apitube.io/v1/news/everything?title=ai&per_page=100&page=1&sort.by=published_at&sort.order=desc' \
  -H "X-API-Key: $APITUBE_KEY"
def paginate(params, max_pages=5):
    for page in range(1, max_pages + 1):
        r = requests.get(API, params={**params, "page": page, "per_page": 100}, headers=HEADERS)
        data = r.json()
        for item in data["results"]:
            yield item
        if not data.get("has_next_pages"):
            return

Faldgrube 1: sorteringsparametrene er sort.by og sort.order (punktnotation) — ikke sort eller sort_by. sort.by accepterer published_at (standard), created_at, id, read_time, source.rank.opr, sentiment.*.score-felterne og mere; sort.order er asc eller desc (standard desc).

Faldgrube 2: stop paginering, når has_next_pages er false — svaret giver dig også en færdigbygget next_page URL, så du kan følge den i stedet for selv at inkrementere page. Der er ingen top-level total-tæller; brug has_next_pages / next_page til at styre din løkke.

Tværs-API: NewsAPI.org bruger pageSize (max 100) og page. NewsData.io bruger cursor-baseret pagination via et page token, ikke numeriske sidenumre — antag det ikke.

5 Anti-mønstre, der spilder din tid

  1. Rækker ud efter en body søgeparameter. Den eksisterer ikke — APITube filtrerer på title. Søg i titlen, og filtrer derefter de returnerede body efterfølgende, hvis du har brug for matching på brødtekstniveau.
  2. Skriver boolske forespørgsler ((a OR b) AND c NOT d). Der er ingen boolsk parser. Brug kommaseparerede termer for OR, ignore.title for eksklusion, separate kald for AND.
  3. Overførsel af menneskeligt læsbare ID'er (category.id=technology, entity.id=Q312, industry=software). Kategorier er IPTC-koder, entiteter og brancher er numeriske ID'er. Slå dem op fra svaret eller reference-endpoints.
  4. Brug af country.code / sort_by / total. De rigtige navne er source.country.code, sort.by + sort.order, og paginering drives af has_next_pages / next_page — der er intet total-felt.
  5. Naive datostrenge (2026/04/01, April 1). Kun ISO 8601 (eller Solr-stil NOW-7DAYS) parser; locale-formater returnerer nul resultater lydløst.

Ofte stillede spørgsmål

Hvordan filtrerer jeg nyheds-API-resultater?

Du filtrerer nyheds-API-resultater ved at sende forespørgselsparametre til søge-endpointet. Almindelige filtre inkluderer titelsøgning (title), datointerval (published_at.start, published_at.end), sprog (language.code), kildeland (source.country.code), kildedomen (source.domain), entitet (entity.id), sentiment (sentiment.body.polarity) og kategori (category.id). Kombiner flere parametre i en enkelt anmodning for at indsnævre resultater — APITube's /v1/news/everything accepterer alle disse i ét kald, forbundet med logisk OG.

Hvilke søgeoperatorer understøtter nyheds-API?

APITube's title-parameter understøtter tre tilstande: nøgleordsøgning (kommaseparerede termer med synonym- og morfologiudvidelse), eksakte fraser i anførselstegn (title="Federal Reserve") og nærhedssøgning (title="apple iphone"~5). Den understøtter ikke boolske AND/OR/NOT-operatorer eller parenteser inde i en værdi — disse ord behandles som almindelige tokens. Brug kommaseparerede termer for OR-stil bredde og den separate ignore.title-parameter til udelukkelse.

Hvordan søger du nyheder efter datointerval?

Send published_at.start og published_at.end med ISO 8601 tidsstempler, e.g. 2026-04-01T00:00:00Z. Rene datoer som 2026-04-01 accepteres og behandles som midnat UTC. NewsAPI.org bruger from og to; NewsData.io bruger from_date og to_date. Undgå lokalt formaterede datoer (04/01/2026) — de er ikke gyldige ISO 8601 og returnerer stille og roligt nul resultater.

Kan jeg filtrere nyheder efter sentiment eller entitet?

Ja — APITube eksponerer sentiment.body.polarity, sentiment.title.polarity og sentiment.overall.polarity (positiv / negativ / neutral), plus entity.id for personer, organisationer og brands. entity.id er en numerisk identifikator (slå den op fra enhver resultats entities[]-array), ikke en Wikidata Q-ID. NewsAPI.org understøtter ingen af delene; NewsAPI.ai (Event Registry) understøtter begge. Filtrering efter entity.id er den største enkeltstående nøjagtighedsforbedring i forhold til nøgleordsøgning, fordi den disambiguerer navne som "Apple" eller "Amazon" fra deres ikke-virksomhedsrelaterede betydninger.

Hvordan kombinerer jeg flere filtre i én nyheds-API-forespørgsel?

Send alle parametre i én GET-anmodning — API forbinder dem med logisk OG. APITube accepterer dusinvis af samtidige filtre i ét kald (entitet + sentiment + dato + sprog + source.country.code vist i Mønster 9). At køre fem separate filtrerede kald og krydsreferere på klientsiden brænder fem gange kvoten for samme resultat. Byg den sammensatte forespørgsel, og indsnævr derefter yderligere, kun hvis resultat-sættet er for stort.

Prøv APITube Gratis

Alle 10-mønstre kører mod APITube's /v1/news/everything-endepunkt. Sentiment, entiteter og kategoriklassificering er inkluderet på enhver artikel uden separate berigelseskald. Se apitube.io/priser for aktuelle niveauer og anmodningsgrænser.

Ressourcer

APITube - News API

Relaterede artikler

Nyheder API hurtig start: Din første anmodning på 5 minutter
Developer Guides

Nyheder API hurtig start: Din første anmodning på 5 minutter

Ram en rigtig nyheds-API-endpoint på 5 minutter — curl, JavaScript og Python side om side, med et kommenteret JSON-svar og rettelser til de 401/429-fejl, du rent faktisk vil støde på.

Slack News Bot Integration Tutorial: 2026 Python Guide
Developer Guides

Slack News Bot Integration Tutorial: 2026 Python Guide

Build a Python Slack news bot. Format with Block Kit, schedule on cron / GitHub Actions / Lambda. Working code, ~80 lines.

Telegram Nyhedsbot i Python (2026): aiogram + APScheduler
Developer Guides

Telegram Nyhedsbot i Python (2026): aiogram + APScheduler

Byg en Telegram-nyhedsbots i Python med aiogram 3.27, APScheduler og APITube. Async, sentiment-filtreret, automatisk kanalpostering — fuld kode + Docker.

Byg en Django-nyhedsportal i 2026: Full stack-tutorial
Developer Guides

Byg en Django-nyhedsportal i 2026: Full stack-tutorial

Byg en Django-nyhedsportal: Celery beat-indtagelse, Redis cache, HTMX uendelig scroll, Postgres fuldtekstsøgning. Rigtige nyheder API, kørbar Django 5-kode.

Vi bruger cookies

Ved at klikke på "Accepter" accepterer du cookies på din enhed, så webstedet fungerer og til analyse.