curl --request POST \
--url https://api.omnixapi.com/api/v1/twitter/article/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"auth_token": "YOUR_X_AUTH_TOKEN",
"title": "My first article",
"content": "## Hello\n\nThis is **bold** and a list:\n\n- one\n- two",
"publish": false,
"cover_media_id": "<string>",
"cover_image_url": "<string>",
"cover_image_base64": "<string>",
"proxy": "http://user:pass@host:8080"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
auth_token: 'YOUR_X_AUTH_TOKEN',
title: 'My first article',
content: '## Hello\n\nThis is **bold** and a list:\n\n- one\n- two',
publish: false,
cover_media_id: '<string>',
cover_image_url: '<string>',
cover_image_base64: '<string>',
proxy: 'http://user:pass@host:8080'
})
};
fetch('https://api.omnixapi.com/api/v1/twitter/article/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.omnixapi.com/api/v1/twitter/article/create"
payload = {
"auth_token": "YOUR_X_AUTH_TOKEN",
"title": "My first article",
"content": "## Hello
This is **bold** and a list:
- one
- two",
"publish": False,
"cover_media_id": "<string>",
"cover_image_url": "<string>",
"cover_image_base64": "<string>",
"proxy": "http://user:pass@host:8080"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": true,
"data": {
"article_id": "<string>",
"status": "draft",
"tweet_id": "<string>",
"draft_url": "<string>",
"public_url": "<string>",
"cover_media_id": "<string>"
},
"error": null
}{
"status": false,
"data": null,
"error": "You can only delete your own tweets"
}Create Article
Create an Article from markdown in one call: draft → title → content → optional cover → optional publish. Publishing requires X Premium.
curl --request POST \
--url https://api.omnixapi.com/api/v1/twitter/article/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"auth_token": "YOUR_X_AUTH_TOKEN",
"title": "My first article",
"content": "## Hello\n\nThis is **bold** and a list:\n\n- one\n- two",
"publish": false,
"cover_media_id": "<string>",
"cover_image_url": "<string>",
"cover_image_base64": "<string>",
"proxy": "http://user:pass@host:8080"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
auth_token: 'YOUR_X_AUTH_TOKEN',
title: 'My first article',
content: '## Hello\n\nThis is **bold** and a list:\n\n- one\n- two',
publish: false,
cover_media_id: '<string>',
cover_image_url: '<string>',
cover_image_base64: '<string>',
proxy: 'http://user:pass@host:8080'
})
};
fetch('https://api.omnixapi.com/api/v1/twitter/article/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.omnixapi.com/api/v1/twitter/article/create"
payload = {
"auth_token": "YOUR_X_AUTH_TOKEN",
"title": "My first article",
"content": "## Hello
This is **bold** and a list:
- one
- two",
"publish": False,
"cover_media_id": "<string>",
"cover_image_url": "<string>",
"cover_image_base64": "<string>",
"proxy": "http://user:pass@host:8080"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": true,
"data": {
"article_id": "<string>",
"status": "draft",
"tweet_id": "<string>",
"draft_url": "<string>",
"public_url": "<string>",
"cover_media_id": "<string>"
},
"error": null
}{
"status": false,
"data": null,
"error": "You can only delete your own tweets"
}Authorizations
Your OmniX API key, e.g. omnix_live_.... Billed per call.
Body
The X account auth_token cookie the action runs as.
"YOUR_X_AUTH_TOKEN"
"My first article"
Markdown body (headings, bold/italic, lists, links, images).
"## Hello\n\nThis is **bold** and a list:\n\n- one\n- two"
Publish immediately (Premium-only). Otherwise saved as a draft.
Pre-uploaded cover media id.
Cover image URL to upload.
Cover image base64 to upload.
Optional outbound proxy for this call (http:// or https://, optionally user:pass@host:port). The X request runs through it — useful for geo-routing or spreading calls across IPs. SOCKS proxies are not supported.
"http://user:pass@host:8080"