Translate a Story by AI
This endpoint returns the story content, translated by AI.
https://mapi.storyblok.com/v1/spaces/:space_id/stories/:story_id/ai_translate
This endpoint will not create or update any story. It will only return the content with the internationalized keys and values for the specific language. Please refer to Update a Story to apply the translation.
Path Parameters
-
:space_id
required numberNumeric ID of a space
-
:story_id
required numberNumeric id of story
Request Body Properties
-
lang
stringThe official language code (e.g.,
en
,de
,fr
) used for localization. -
code
stringThe custom language identifier defined in the Space Settings under Internationalization.
-
overwrite
booleanIndicates whether the current value should replace the existing value for the specified language.
-
release_id
numberRelease ID of the story.
Response Properties
-
story
The Story ObjectA single story object, containing the translated fields in its
content
property.-
id
numberNumeric id of the story
-
name
stringThe complete name provided for the story
-
parent_id
numberID of the parent folder
-
group_id
stringGroup ID (UUID string), shared between stories defined as alternates
-
alternates
object[]An array containing objects that provide basic data of the stories defined as alternates of the current story
-
id
numberThe numeric ID
-
name
stringThe complete name provided for the story
-
slug
stringThe slug specific for the story
-
published
booleantrue
if a story is currently published, even if it has unpublished changes. -
full_slug
stringThe full slug of the story, combining the parent folder(s) and the designated story slug
-
is_folder
booleantrue
if the instance constitutes a folder
-
-
created_at
stringCreation date (Format:
yyyy-MM-dd'T'HH:mm:ssZ
) -
deleted_at
stringDeleted date (Format: YYYY-mm-dd HH:MM)
-
sort_by_date
stringDate defined in the story's entry configuration (Format:
YYYY-mm-dd
) -
tag_list
string[]Array of tag names
-
updated_at
stringLatest update date (Format:
yyyy-MM-dd'T'HH:mm:ssZ
) -
published_at
stringLatest publishing date (Format:
yyyy-MM-dd'T'HH:mm:ssZ
) -
uuid
stringGenerated UUID string
-
is_folder
booleantrue
if the instance constitutes a folder -
content
objectAn object containing the field data associated with the specific story type's specific content structure. Also includes a
component
property with the story type's technical name. -
published
booleantrue
if a story is currently published, even if it has unpublished changes. -
slug
stringThe slug specific for the story
-
path
stringValue of the real path defined in the story's entry configuration (usually, this value is only required for Storyblok's Visual Editor)
-
full_slug
stringThe full slug of the story, combining the parent folder(s) and the designated story slug
-
default_root
stringComponent name which will be used as default content type for this folders entries
-
disable_fe_editor
booleanIs side by side editor disabled for all entries in folder
-
parent
objectEssential parent information as object (resolved from
parent_id
) -
is_startpage
booleantrue
if the story is defined as root for the folder -
unpublished_changes
booleanStory has unpublished changes; saved but not published
-
meta_data
objectObject to store non-editable data that is exclusively maintained with the Management API
-
imported_at
stringLatest import date (Format: YYYY-mm-dd HH:MM)
-
preview_token
objectPreview token
-
token
stringThe token passed to the editor as preview parameter to allow edit mode verification
-
timestamp
stringTimestamp passed to the editor as preview parameter to allow edit mode verification
-
-
pinned
booleanTo pin the story in the toolbar
-
breadcrumbs
object[]Array of resolved subset of link objects (one per path segment / parent)
-
id
numberStory ID
-
name
stringThe complete name provided for the story
-
parent_id
numberID of the parent folder
-
disable_fe_editor
booleanIs side by side editor disabled for all entries in folder
-
path
stringValue of the real path defined in the story's entry configuration (usually, this value is only required for Storyblok's Visual Editor)
-
slug
stringThe slug specific for the story
-
translated_slugs
object[]Array of translated slug objects (if the app Translatable Slugs is installed)
-
-
first_published_at
stringFirst publishing date (Format:
yyyy-MM-dd'T'HH:mm:ssZ
) -
last_author
objectLast author
-
id
numberLast author user object numeric id
-
userid
stringLast author userid/username
-
friendly_name
stringFriendly name of last author
-
-
last_author_id
numberId of the last Author
-
translated_slugs
object[]Array of translated slug objects (if the app Translatable Slugs is installed)
-
story_id
numberID of the story
-
lang
stringLanguage code of the current language (can be requested with the
language
API parameter) -
slug
stringThe slug specific for the story
-
name
stringThe complete name provided for the story
-
published
booleantrue
if a story is currently published, even if it has unpublished changes.
-
-
translated_slugs_attributes
object[]Array of translated slug attributes objects (if the app Translatable Slugs is installed) to change translated slugs when creating or updating a story
-
id
numberThe numeric ID
-
lang
stringLanguage code of the current language (can be requested with the
language
API parameter) -
slug
stringThe slug specific for the story
-
name
stringThe complete name provided for the story
-
published
booleantrue
if a story is currently published, even if it has unpublished changes.
-
-
localized_paths
object[]An array of translated path objects
-
path
stringValue of the real path defined in the story's entry configuration (usually, this value is only required for Storyblok's Visual Editor)
-
name
stringThe complete name provided for the story
-
lang
stringLanguage code of the current language (can be requested with the
language
API parameter) -
published
booleantrue
if a story is currently published, even if it has unpublished changes.
-
-
position
numberNumeric representation of the story's position in the folder
-
release_id
numberID of the current release (can be requested with the
from_release
API parameter) -
scheduled_dates
stringScheduled publishing date (Format: YYYY-mm-dd HH:MM)
-
favourite_for_user_ids
number[]Array of user IDs who have added the story in their favorites
-
curl "https://mapi.storyblok.com/v1/spaces/606/stories/536503907/ai_translate" \
-X PUT \
-H "Authorization: YOUR_OAUTH_TOKEN" \
-H "Content-Type: application/json" \
-d "{ \"lang\": \"fr\", \"code\": \"fr\", \"release_id\": 0, \"overwrite\": true }"
// Using the Universal JavaScript Client:
// https://github.com/storyblok/storyblok-js-client
Storyblok.put('cdn/spaces/606/stories/536503907/ai_translate', { "lang": "fr", "code": "fr", "release_id": 0, "overwrite": true })
.then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
$client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
$payload = [ "lang" => "fr", "code" => "fr", "release_id" => 0, "overwrite" => true ];
$client->put('/spaces/606/stories/536503907/ai_translate', $payload)->getBody();
require 'storyblok'
client = Storyblok::Client.new(oauth_token: 'YOUR_OAUTH_TOKEN')
payload = { "lang" => "fr", "code" => "fr", "release_id" => 0, "overwrite" => true }
client.put('/spaces/606/stories/536503907/ai_translate', payload)
HttpResponse<String> response = Unirest.put("https://mapi.storyblok.com/v1/spaces/606/stories/536503907/ai_translate")
.header("Content-Type", "application/json")
.header("Authorization", "YOUR_OAUTH_TOKEN")
.body("{ \"lang\": \"fr\", \"code\": \"fr\", \"release_id\": 0, \"overwrite\": true }")
.asString();
var client = new RestClient("https://mapi.storyblok.com/v1/spaces/606/stories/536503907/ai_translate");
var request = new RestRequest(Method.PUT);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "YOUR_OAUTH_TOKEN");
request.AddParameter("application/json", "{ \"lang\": \"fr\", \"code\": \"fr\", \"release_id\": 0, \"overwrite\": true }", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import Foundation
let headers = [
"Content-Type": "application/json",
"Authorization": "YOUR_OAUTH_TOKEN"
]
let postData = NSData(data: "{ \"lang\": \"fr\", \"code\": \"fr\", \"release_id\": 0, \"overwrite\": true }".data(using: String.Encoding.utf8)!)
let request = NSMutableURLRequest(url: NSURL(string: "https://mapi.storyblok.com/v1/spaces/606/stories/536503907/ai_translate")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
request.method = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
import requests
url = "https://mapi.storyblok.com/v1/spaces/606/stories/536503907/ai_translate"
querystring = {}
payload = "{ \"lang\": \"fr\", \"code\": \"fr\", \"release_id\": 0, \"overwrite\": true }"
headers = {
'Content-Type': "application/json",
'Authorization': "YOUR_OAUTH_TOKEN"
}
response = requests.request("PUT", url, data=payload, headers=headers, params=querystring)
print(response.text)
You will receive a single story object, containing the translated fields in its content
property.