POST /api/techcrunch/articles/search
Price: 10 credits
Search and browse the full TechCrunch archive back to 2005. Combine a full-text query with section, topic-tag, region, storyline and author filters, publish and update date ranges, an 'In Brief' short-news switch and the sort order. Each result carries headline, excerpt, publish and update timestamps, credited authors and the resolved taxonomy terms.
List TechCrunch articles. Set count for how many to return. Filter with keyword (full text), categories/tags/regions/storylines and their _exclude twins (slugs from techcrunch/categories/search and techcrunch/tags/search), authors (slugs like 'sarah-perez'), wp_author_ids, and the published_after/published_before/updated_after/updated_before ISO 8601 UTC ranges, which line up with the published_at and updated_at values in the result. only_brief=true keeps just the short 'In Brief' items. taxonomy_relation switches the taxonomy filters between AND and OR. sort accepts date, modified, relevance (only meaningful together with keyword), title, slug, id or author; order is asc or desc. Each item has id, article_title, alias, web_url, excerpt, published_at, updated_at, reading_time_minutes, image, image_id, authors[] and taxonomy terms — pass id or web_url to techcrunch/articles for the full body.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)keyword string nullable — Full-text query matched against article title and body (examples: "openai")categories array nullable — Only articles filed under these section slugs (examples: ["artificial-intelligence"])categories_exclude array nullable — Drop articles filed under these section slugstags array nullable — Only articles carrying these topic tag slugs (examples: ["openai"])tags_exclude array nullable — Drop articles carrying these topic tag slugsregions array nullable — Only articles tagged with these region slugs (examples: ["india"])regions_exclude array nullable — Drop articles tagged with these region slugsstorylines array nullable — Only articles belonging to these storyline collection slugsstorylines_exclude array nullable — Drop articles belonging to these storyline collection slugsauthors array nullable — Only articles credited to these author slugs (examples: ["sarah-perez"])authors_exclude array nullable — Drop articles credited to these author slugswp_author_ids array nullable — Only articles owned by these publishing account ids, as returned in wp_author_idwp_author_ids_exclude array nullable — Drop articles owned by these publishing account idspublished_after string nullable — Only articles whose published_at is at or after this ISO 8601 UTC moment (examples: "2020-01-01T00:00:00")published_before string nullable — Only articles whose published_at is before this ISO 8601 UTC moment (examples: "2021-01-01T00:00:00")updated_after string nullable — Only articles whose updated_at is at or after this ISO 8601 UTC momentupdated_before string nullable — Only articles whose updated_at is before this ISO 8601 UTC momentonly_brief boolean nullable — Restrict to short 'In Brief' news items; false is the same as leaving it unsettaxonomy_relation string nullable — Combine the section, tag, region and storyline filters with AND or OR (one of: "AND", "OR")sort string nullable — Field the results are ordered by (one of: "date", "modified", "relevance", "title", "slug", "id", "author")order string nullable — Sort direction (one of: "asc", "desc")offset integer — Skip this many matching articles before collecting (default: 0; min: 0)count integer required — Max number of articles to return (min: 1)@type string (default: "TechcrunchArticleCard")id integer requiredarticle_title string requiredalias string requiredweb_url string requiredpublished_at integer nullableupdated_at integer nullableexcerpt string nullablesubtitle string nullablesocial_title string nullableseo_description string nullablereading_time_minutes integer nullableis_brief boolean (default: false)is_breaking boolean (default: false)is_featured boolean (default: false)post_format string nullableimage string nullableimage_id integer nullableapple_news_url string nullablewp_author_id integer nullableauthors array (default: [])@type string (default: "TechcrunchArticleAuthor")id integer requiredname string requiredalias string requiredlogin string nullablejob_title string nullableorganization string nullabledescription string nullableprofile_url string nullableimage string nullablearticle_count integer nullableguest_author_id integer nullabletwitter_url string nullablelinkedin_url string nullablefacebook_url string nullablehomepage_url string nullablecategories array (default: [])@type string (default: "TechcrunchTerm")id integer requiredname string requiredalias string nullabletaxonomy string nullableweb_url string nullabledescription string nullablecontent_count integer nullableparent_id integer nullabletags array (default: [])@type string (default: "TechcrunchTerm")id integer requiredname string requiredalias string nullabletaxonomy string nullableweb_url string nullabledescription string nullablecontent_count integer nullableparent_id integer nullableregions array (default: [])@type string (default: "TechcrunchTerm")id integer requiredname string requiredalias string nullabletaxonomy string nullableweb_url string nullabledescription string nullablecontent_count integer nullableparent_id integer nullablestorylines array (default: [])@type string (default: "TechcrunchTerm")id integer requiredname string requiredalias string nullabletaxonomy string nullableweb_url string nullabledescription string nullablecontent_count integer nullableparent_id integer nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.