curl --request GET \
--url https://api.buttercms.com/v2/authors/{slug}/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.buttercms.com/v2/authors/{slug}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.buttercms.com/v2/authors/{slug}/', 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://api.buttercms.com/v2/authors/{slug}/",
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: <api-key>"
],
]);
$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://api.buttercms.com/v2/authors/{slug}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.buttercms.com/v2/authors/{slug}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.buttercms.com/v2/authors/{slug}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"slug": "jennifer-smith",
"first_name": "Jennifer",
"last_name": "Smith",
"email": "jennifersmith@buttercms.com",
"bio": "I love coffee!",
"title": "President",
"linkedin_url": "https://www.linkedin.com/in/jennifersmith",
"facebook_url": "https://www.facebook.com/jennifersmith",
"pinterest_url": "https://www.pinterest.com/jennifersmith",
"instagram_url": "https://www.instagram.com/jennifersmith",
"twitter_handle": "jennifersmith",
"profile_image": "https://d2devwt40at1e2.cloudfront.net/api/file/etSDYJUIFDADGEEAQ.png"
}
}Retrieve Author
Retrieve detailed author information by slug, including profile data and optional recent posts.
curl --request GET \
--url https://api.buttercms.com/v2/authors/{slug}/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.buttercms.com/v2/authors/{slug}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.buttercms.com/v2/authors/{slug}/', 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://api.buttercms.com/v2/authors/{slug}/",
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: <api-key>"
],
]);
$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://api.buttercms.com/v2/authors/{slug}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.buttercms.com/v2/authors/{slug}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.buttercms.com/v2/authors/{slug}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"slug": "jennifer-smith",
"first_name": "Jennifer",
"last_name": "Smith",
"email": "jennifersmith@buttercms.com",
"bio": "I love coffee!",
"title": "President",
"linkedin_url": "https://www.linkedin.com/in/jennifersmith",
"facebook_url": "https://www.facebook.com/jennifersmith",
"pinterest_url": "https://www.pinterest.com/jennifersmith",
"instagram_url": "https://www.instagram.com/jennifersmith",
"twitter_handle": "jennifersmith",
"profile_image": "https://d2devwt40at1e2.cloudfront.net/api/file/etSDYJUIFDADGEEAQ.png"
}
}404 for team members without any published posts.
Author Profile Information: Returns comprehensive author profile including personal details (name, bio, title), complete social media profiles (LinkedIn, Facebook, Pinterest, Instagram, Twitter), profile image CDN URL, and unique slug identifier for URL-friendly referencing. The email field is null unless Include author email addresses in Blog API responses is enabled under Settings → General.
Recent Posts Integration: Use the include=recent_posts parameter to enrich the response with the author’s most recent blog posts. This is particularly useful for creating detailed author profile pages that showcase both their biography and latest content contributions.Authorizations
Set the Authorization header to Token your_read_api_token.
Example: Authorization: Token abc123def456
Note: The header value includes the Token prefix. Authorization: Bearer ... is not accepted and returns 401.
You can access your API token from your settings page.
Path Parameters
The unique slug identifier of the author to retrieve.
Must match an existing author slug in your organization.
100Query Parameters
Your ButterCMS read API token
Include additional data in the response.
When set to recent_posts, the author object will include a recent_posts array containing their latest blog posts.
recent_posts Filter the embedded recent_posts list to posts in the given locale (e.g. en, es). The author itself is shared across locales and is always returned. When omitted, defaults to your organization's default locale.
Returns 400 if the value is not a locale configured on your organization.
10Response
Author retrieved successfully
Response structure for retrieving a single author
Single author object
Show child attributes
Show child attributes
Was this page helpful?