API reference

Generated from the live OpenAPI specification (NaijaPress API v1.0.0). Base URL https://api.naijapress.com.

Download openapi.json

Try it

Paste one of your own API keys to send a request from this page. The key stays in this browser tab's memory and is sent only to the NaijaPress API. Requests count toward your quota.

GET https://api.naijapress.com/v1/news

News

GET/v1/newsList news

Newest-first list of enriched articles within your plan's access window (calendar days, Nigeria time). Cursor pagination; page size is capped at your plan's articles-per-call maximum.

ParameterInTypeDescription
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
qquerystring (optional)Optional free-text filter; 3 characters minimum, up to your plan's maximum search query length (≤ 300 chars)
sortquery"published_desc" | "published_asc" (default "published_desc")
categoryquerystring (optional)Category slug, e.g. `economy` (≤ 40 chars)
subcategoryquerystring (optional) (≤ 80 chars)
topicquerystring (optional)Topic id or slug (≤ 200 chars)
entityquerystring (optional)Entity id or slug (≤ 200 chars)
locationquerystring (optional)Location id or slug (includes child places) (≤ 200 chars)
location_rolequery"mentioned" | "event" (optional)Restrict location matches to a role (advanced)
sourcequerystring (optional)Source id or slug (≤ 120 chars)
languagequerystring (optional) (≤ 10 chars)
geographic_scopequery"local" | "state" | "national" | "regional" | "global" (optional)Advanced filter
published_afterquerystring · date-time (optional)ISO 8601; inclusive
published_beforequerystring · date-time (optional)ISO 8601; inclusive

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Article_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
GET/v1/news/{slug}Get an article

Fetch one article by slug or id. Articles outside your plan's access window return 404.

ParameterInTypeDescription
slug*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Article_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
GET/v1/news/{slug}/relatedRelated news

Articles related through the same event cluster or shared canonical entities/topics (±14 days).

ParameterInTypeDescription
slug*pathstring
limitqueryinteger (min 1, max 50, default 10)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_ScoredArticle_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
scorenumber (optional)Ranking score; see docs for how it is computed for each endpoint
matchobject (optional)Ranking diagnostics (e.g. keyword and semantic ranks for hybrid search)

Search

GET/v1/searchKeyword search

Full-text keyword search (supports quotes, `or` and `-exclusion`). Works without embeddings.

ParameterInTypeDescription
q*querystringFree-text query. Trimmed; 3 characters minimum, up to your plan's maximum search query length (≤ 300 chars)
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
categoryquerystring (optional)Category slug, e.g. `economy` (≤ 40 chars)
subcategoryquerystring (optional) (≤ 80 chars)
topicquerystring (optional)Topic id or slug (≤ 200 chars)
entityquerystring (optional)Entity id or slug (≤ 200 chars)
locationquerystring (optional)Location id or slug (includes child places) (≤ 200 chars)
location_rolequery"mentioned" | "event" (optional)Restrict location matches to a role (advanced)
sourcequerystring (optional)Source id or slug (≤ 120 chars)
languagequerystring (optional) (≤ 10 chars)
geographic_scopequery"local" | "state" | "national" | "regional" | "global" (optional)Advanced filter
published_afterquerystring · date-time (optional)ISO 8601; inclusive
published_beforequerystring · date-time (optional)ISO 8601; inclusive

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_ScoredArticle_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
scorenumber (optional)Ranking score; see docs for how it is computed for each endpoint
matchobject (optional)Ranking diagnostics (e.g. keyword and semantic ranks for hybrid search)
GET/v1/search/semanticSemantic search

Meaning-based search over article embeddings. `score` is cosine similarity in [−1, 1].

ParameterInTypeDescription
q*querystringFree-text query. Trimmed; 3 characters minimum, up to your plan's maximum search query length (≤ 300 chars)
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
min_similarityquerynumber (optional) (min -1, max 1)
categoryquerystring (optional)Category slug, e.g. `economy` (≤ 40 chars)
subcategoryquerystring (optional) (≤ 80 chars)
topicquerystring (optional)Topic id or slug (≤ 200 chars)
entityquerystring (optional)Entity id or slug (≤ 200 chars)
locationquerystring (optional)Location id or slug (includes child places) (≤ 200 chars)
location_rolequery"mentioned" | "event" (optional)Restrict location matches to a role (advanced)
sourcequerystring (optional)Source id or slug (≤ 120 chars)
languagequerystring (optional) (≤ 10 chars)
geographic_scopequery"local" | "state" | "national" | "regional" | "global" (optional)Advanced filter
published_afterquerystring · date-time (optional)ISO 8601; inclusive
published_beforequerystring · date-time (optional)ISO 8601; inclusive

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_ScoredArticle_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
scorenumber (optional)Ranking score; see docs for how it is computed for each endpoint
matchobject (optional)Ranking diagnostics (e.g. keyword and semantic ranks for hybrid search)
GET/v1/search/hybridHybrid search

Keyword + semantic retrieval fused with Reciprocal Rank Fusion (k=60). `score` = Σ 1/(60 + rank) over the two rankings; `match` shows each component rank.

ParameterInTypeDescription
q*querystringFree-text query. Trimmed; 3 characters minimum, up to your plan's maximum search query length (≤ 300 chars)
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
categoryquerystring (optional)Category slug, e.g. `economy` (≤ 40 chars)
subcategoryquerystring (optional) (≤ 80 chars)
topicquerystring (optional)Topic id or slug (≤ 200 chars)
entityquerystring (optional)Entity id or slug (≤ 200 chars)
locationquerystring (optional)Location id or slug (includes child places) (≤ 200 chars)
location_rolequery"mentioned" | "event" (optional)Restrict location matches to a role (advanced)
sourcequerystring (optional)Source id or slug (≤ 120 chars)
languagequerystring (optional) (≤ 10 chars)
geographic_scopequery"local" | "state" | "national" | "regional" | "global" (optional)Advanced filter
published_afterquerystring · date-time (optional)ISO 8601; inclusive
published_beforequerystring · date-time (optional)ISO 8601; inclusive

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_ScoredArticle_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text
scorenumber (optional)Ranking score; see docs for how it is computed for each endpoint
matchobject (optional)Ranking diagnostics (e.g. keyword and semantic ranks for hybrid search)

Taxonomy

GET/v1/categoriesList categories

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Category_

slugstring
namestring
descriptionstring
subcategoriesSubcategoryRef[] (optional)
GET/v1/categories/{slug}Get a category
ParameterInTypeDescription
slug*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Category_

slugstring
namestring
descriptionstring
subcategoriesSubcategoryRef[] (optional)
GET/v1/categories/{slug}/subcategoriesList a category's subcategories
ParameterInTypeDescription
slug*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Subcategory_

slugstring
namestring
descriptionstring
categoryCategoryRef
GET/v1/subcategories/{slug}Get a subcategory
ParameterInTypeDescription
slug*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Subcategory_

slugstring
namestring
descriptionstring
categoryCategoryRef

Entities

GET/v1/entitiesList or search entities
ParameterInTypeDescription
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
qquerystring (optional)Name or alias prefix (≤ 200 chars)
typequerystring (optional) (≤ 40 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Entity_

idstring
slugstring
namestring
typestring
descriptionstring (optional)
aliasesstring[]
article_countinteger
GET/v1/entities/{entity_id}Get an entity
ParameterInTypeDescription
entity_id*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Entity_

idstring
slugstring
namestring
typestring
descriptionstring (optional)
aliasesstring[]
article_countinteger
GET/v1/entities/{entity_id}/newsNews mentioning an entity
ParameterInTypeDescription
entity_id*pathstring
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Article_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text

Topics

GET/v1/topicsList or search topics
ParameterInTypeDescription
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
qquerystring (optional) (≤ 200 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Topic_

idstring
slugstring
labelstring
descriptionstring (optional)
aliasesstring[]
parentTopicRef (optional)
article_countinteger
GET/v1/topics/{topic_id}Get a topic
ParameterInTypeDescription
topic_id*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Topic_

idstring
slugstring
labelstring
descriptionstring (optional)
aliasesstring[]
parentTopicRef (optional)
article_countinteger
GET/v1/topics/{topic_id}/newsNews about a topic
ParameterInTypeDescription
topic_id*pathstring
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Article_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text

Locations

GET/v1/locationsList or search locations
ParameterInTypeDescription
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 50)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
qquerystring (optional) (≤ 200 chars)
typequery"country" | "region" | "state" | "lga" | "city" | "other" (optional)
parentquerystring (optional)Parent location id or slug (≤ 200 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Location_

idstring
slugstring
namestring
typestring
country_codestring (optional)
parentPlaceRef (optional)
aliasesstring[]
article_countinteger
GET/v1/locations/{location_id}Get a location
ParameterInTypeDescription
location_id*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Location_

idstring
slugstring
namestring
typestring
country_codestring (optional)
parentPlaceRef (optional)
aliasesstring[]
article_countinteger
GET/v1/locations/{location_id}/newsNews about a location
ParameterInTypeDescription
location_id*pathstring
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 20)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)
rolequery"mentioned" | "event" (optional)Advanced: restrict to event location or mentions

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Article_

idstring
slugstring
titlestring
sourceSourceRef
published_atstring · date-time
ingested_atstring · date-time
languagestring (optional)
authorstring (optional)
image_urlstring (optional)
summarystring (optional)AI-generated summary of the publisher's reporting (Growth and Enterprise plans)
categoryCategoryRef (optional)
subcategorySubcategoryRef (optional)
entitiesEntityRef[] (optional)
topicsTopicRef[] (optional)
geographyGeography (optional)
sentimentSentiment (optional)
event_cluster_idstring (optional)
contentstring (optional)Full text; only for licensed sources on plans that include it
attributionstringRequired attribution text

Sources

GET/v1/sourcesList sources
ParameterInTypeDescription
limitqueryintegerArticles per call; values above your plan's maximum are capped to it (min 1, max 100, default 50)
cursorquerystring (optional)Cursor from a previous response (≤ 500 chars)

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ListResponse_Source_

idstring
slugstring
namestring
websitestring (optional)
languagestring
countrystring
descriptionstring (optional)
article_countinteger
GET/v1/sources/{source_id}Get a source
ParameterInTypeDescription
source_id*pathstring

Responses

  • 200 — Successful Response
  • 401 — Missing, invalid or revoked API key
  • 403 — Not included in your plan
  • 404 — Not Found
  • 422 — Invalid parameters
  • 429 — Rate limit or monthly quota exceeded

Response schema: ItemResponse_Source_

idstring
slugstring
namestring
websitestring (optional)
languagestring
countrystring
descriptionstring (optional)
article_countinteger

Health

GET/health/liveLiveness probe

Responses

  • 200 — Successful Response
GET/health/readyReadiness probe

Reports only up/down per dependency; no internal details.

Responses

  • 200 — Successful Response