List articles
curl --request GET \
--url https://app.keupera.com/api/v1/articles \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.keupera.com/api/v1/articles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.keupera.com/api/v1/articles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.keupera.com/api/v1/articles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.keupera.com/api/v1/articles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.keupera.com/api/v1/articles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.keupera.com/api/v1/articles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "Best SEO Tools in 2024",
"slug": "best-seo-tools-2024",
"pipeline_status": "completed",
"article_type": "standard",
"meta_description": "<string>",
"featured_image": "<string>",
"published_at": "2023-11-07T05:31:56Z",
"scheduled_publish_at": "2023-11-07T05:31:56Z",
"keywords": {
"term": "<string>",
"volume": 123,
"difficulty": 123
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"total": 150,
"page": 1,
"limit": 100
}
}{
"error": "Invalid or missing API key"
}Content
List articles
Returns a paginated list of articles for a website.
GET
/
articles
List articles
curl --request GET \
--url https://app.keupera.com/api/v1/articles \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.keupera.com/api/v1/articles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.keupera.com/api/v1/articles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.keupera.com/api/v1/articles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.keupera.com/api/v1/articles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.keupera.com/api/v1/articles")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.keupera.com/api/v1/articles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "Best SEO Tools in 2024",
"slug": "best-seo-tools-2024",
"pipeline_status": "completed",
"article_type": "standard",
"meta_description": "<string>",
"featured_image": "<string>",
"published_at": "2023-11-07T05:31:56Z",
"scheduled_publish_at": "2023-11-07T05:31:56Z",
"keywords": {
"term": "<string>",
"volume": 123,
"difficulty": 123
},
"created_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"total": 150,
"page": 1,
"limit": 100
}
}{
"error": "Invalid or missing API key"
}Authorizations
Pass your Keupera API key as a Bearer token: Authorization: Bearer YOUR_KEUPERA_API_KEY. Generate keys from Account → API Keys in your Keupera dashboard.
Query Parameters
Target website. Defaults to the website bound to your API key. Must belong to one of your organizations.
Results per page.
Required range:
1 <= x <= 100Page number for paginated endpoints.
Required range:
x >= 1Filter by article status.
Available options:
planned, queued, in-progress, completed, published ⌘I