GET
/api/v1/me
Ο λογαριασμός στον οποίο ανήκει το κλειδί, καθώς και το όνομα και το πρόθεμα του ίδιου του κλειδιού. Χρήσιμο πάνω απ’ όλα για ένα πράγμα: να σας δείχνει ότι το κλειδί σε αυτό το περιβάλλον είναι το κλειδί που νομίζετε ότι είναι.
Παράδειγμα
curl https://seonis.ai/api/v1/me \
-H "Authorization: Bearer $SEONIS_API_KEY"
GET
/api/v1/sites
Κάθε ιστότοπος στον λογαριασμό. Το id είναι αυτό με το οποίο φιλτράρει η λίστα άρθρων, και το domain υπάρχει ώστε ένα build script να ταιριάζει με κάτι που ήδη γνωρίζει αντί να μεταφέρει ένα id.
Παράδειγμα
curl https://seonis.ai/api/v1/sites \
-H "Authorization: Bearer $SEONIS_API_KEY"
{
"sites": [
{
"id": 5,
"name": "Peppervale",
"domain": "peppervale.co.uk",
"url": "https://peppervale.co.uk",
"language": "en",
"country": "GB",
"market": "en-GB",
"status": "active",
"articles_published": 34,
"created_at": "2026-06-02T11:04:19+00:00"
}
]
}
GET
/api/v1/articles
Μια σελίδα άρθρων, με πρώτη τη νεότερη αλλαγή, χωρίς το κείμενο. Η σειρά βασίζεται στο πότε άλλαξε τελευταία φορά κάθε άρθρο και όχι στο πότε γράφτηκε, γι’ αυτό το updated_since είναι χρήσιμο: ένα άρθρο που είναι ήδη δημοσιευμένο μπορεί να τροποποιηθεί αργότερα, όταν προστεθεί ή αφαιρεθεί ένας σύνδεσμος.
Παράμετροι ερωτήματος
| Όνομα |
Τι κάνει |
| site_id |
Ένας ιστότοπος, από το /sites. Ένα id που δεν ανήκει στον λογαριασμό σας απαντά με 404. |
| status |
Ένα από τα draft, qa, needs_repair, review, ready, published, failed. Οτιδήποτε άλλο επιστρέφει 422 αντί για κενή σελίδα. Το "ready" είναι αυτό που θέλει ένα build: γραμμένο, ελεγμένο και όχι ακόμη δημοσιευμένο κάπου. |
| updated_since |
ISO 8601, όπως 2026-09-06T00:00:00Z. Θυμηθείτε το timestamp της τελευταίας εκτέλεσής σας και περάστε το ξανά στην επόμενη. |
| per_page |
Έως 100. Η προεπιλογή είναι 25. |
| page |
Από το 1. Το meta.has_more λέει αν πρέπει να ζητήσετε άλλο. |
Παράδειγμα
curl -G https://seonis.ai/api/v1/articles \
-H "Authorization: Bearer $SEONIS_API_KEY" \
-d site_id=5 \
-d status=ready \
-d updated_since=2026-09-01T00:00:00Z \
-d per_page=50
{
"articles": [
{
"id": 918,
"site_id": 5,
"language": "en",
"status": "ready",
"title": "How to choose a pepper grinder",
"slug": "how-to-choose-a-pepper-grinder",
"meta_title": "How to choose a pepper grinder | Peppervale",
"meta_description": "Burr or blade, ceramic or steel: what matters in a grinder.",
"meta_keywords": ["pepper grinder", "burr grinder"],
"tags": ["Kitchen"],
"excerpt": "A burr grinder gives an even grind; a blade one does not.",
"key_takeaways": ["A burr grinder gives an even grind; a blade one does not."],
"faq": [{ "question": "Ceramic or steel?", "answer": "Steel for pepper, ceramic for salt." }],
"hero_image": { "url": "https://seonis.ai/storage/images/5/918.jpg", "alt": "A pepper grinder" },
"infographic_url": null,
"word_count": 1812,
"published_url": null,
"published_at": null,
"updated_at": "2026-09-06T06:31:12+00:00",
"created_at": "2026-09-05T02:14:55+00:00",
"quality": { "seo_score": 88, "language_score": 96, "language_findings": [] }
}
],
"meta": { "page": 1, "per_page": 50, "total": 1, "last_page": 1, "has_more": false }
}
GET
/api/v1/articles/{id}
Ένα άρθρο, με όλα όσα αφήνει έξω η λίστα: content_markdown, content_html, το FAQ ως schema.org JSON-LD έτοιμο να προστεθεί στη σελίδα και τυχόν exchange links που περιέχει το άρθρο.
Τα ονόματα πεδίων είναι επίτηδες αυτά που στέλνει το webhook μας. Αν έχετε ήδη δέκτη webhook, ο ίδιος parser διαβάζει και αυτό.
Παράδειγμα
curl https://seonis.ai/api/v1/articles/918 \
-H "Authorization: Bearer $SEONIS_API_KEY"
{
"article": {
"id": 918,
"site_id": 5,
"language": "en",
"status": "ready",
"title": "How to choose a pepper grinder",
"slug": "how-to-choose-a-pepper-grinder",
"meta_description": "Burr or blade, ceramic or steel: what matters in a grinder.",
"content_markdown": "Grinders differ.\n\n## Burr or blade\n\nA **burr** grinder ...",
"content_html": "<p>Grinders differ.</p>\n<h2>Burr or blade</h2> ...",
"faq_schema": { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [] },
"hero_image": { "url": "https://seonis.ai/storage/images/5/918.jpg", "alt": "A pepper grinder" },
"word_count": 1812,
"published_url": null,
"updated_at": "2026-09-06T06:31:12+00:00",
"quality": { "seo_score": 88, "language_score": 96, "language_findings": [] },
"exchange_links": []
}
}
POST
/api/v1/articles/{id}/published
Εσείς δημοσιεύετε το άρθρο, εδώ μας δηλώνετε τη διεύθυνση. Είναι το μοναδικό endpoint που αλλάζει οτιδήποτε.
Κάνει ακριβώς ό,τι κάνει και μια παράδοση που κάναμε εμείς οι ίδιοι: το άρθρο σημειώνεται ως δημοσιευμένο, προσμετράται στο μηνιαίο όριό σας, το στοιχείο του πλάνου κλείνει, τυχόν exchange links μέσα του λαμβάνουν τη διεύθυνση που περιμένει ο verifier και ενημερώνεται η Facebook Page σας αν έχετε συνδέσει μία. Χωρίς αυτή την κλήση το άρθρο παραμένει έτοιμο για πάντα και τίποτα από αυτά δεν συμβαίνει.
Παράδειγμα
curl -X POST https://seonis.ai/api/v1/articles/918/published \
-H "Authorization: Bearer $SEONIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://peppervale.co.uk/blog/how-to-choose-a-pepper-grinder"}'
Απαντήσεις
| 200 |
Καταγράφηκε. Το άρθρο επιστρέφει με τη νέα του κατάσταση, το published_at και το published_url. |
| 422 |
Το url λείπει ή δεν είναι πλήρης διεύθυνση http:// ή https://. |
| 409 |
Το άρθρο δεν είναι έτοιμο για δημοσίευση ή έχει ήδη καταγραφεί ως δημοσιευμένο. Το άρθρο επιστρέφεται μαζί με την απόρριψη, ώστε να μπορείτε να δείτε ποιο από τα δύο ισχύει. |