Μετάβαση στο περιεχόμενο
Sursa Developers

POST/v1/push/sources/{source_id}/documents

Αποστολή εγγράφου (δημιουργία ή αντικατάσταση)

push_upsert_document

Δημιουργεί ή αντικαθιστά ένα έγγραφο με βάση το external_id. Με JSON, στείλτε το περιεχόμενο στο content (content_type: html, markdown ή text, έως 5 MB). Με multipart/form-data, στείλτε το αρχείο στο τμήμα file (έως 100 MB, οι ίδιες μορφές όπως σε μια μεταφόρτωση στη βάση γνώσης) και τα μεταδεδομένα στο τμήμα document (JSON της ίδιας μορφής χωρίς content) ή ως ξεχωριστά πεδία external_id, title, url, path, tags. Το sync_number είναι ο αριθμός του ανοιχτού συγχρονισμού. Χωρίς αυτό, το έγγραφο γράφεται αμέσως (άμεση δημιουργία ή αντικατάσταση), αλλά ο επόμενος πλήρης συγχρονισμός το διαγράφει, εκτός αν σταλεί ξανά. Η εκ νέου αποστολή του ίδιου εγγράφου επιστρέφει unchanged (ταυτοδύναμα). Το έγγραφο γίνεται κάρτα στον επόμενο συγχρονισμό της πηγής (μέσα σε ένα λεπτό· μέσα σε ανοιχτό συγχρονισμό, μετά το κλείσιμό του). Από την έκδοση 1.62.0: πεδία κάρτας (metadata, category, verifiers, verify_interval_days), αρχείο από μεταφόρτωση σε τμήματα (upload_id) και συνημμένα (attachments)· η απόκριση περιλαμβάνει status και card_id (το αποτέλεσμα του εγγράφου). Το όριο εγγράφων μιας πηγής εξαρτάται από το πακέτο.

Έλεγχος ταυτότητας

Στείλτε ένα κλειδί API στην κεφαλίδα Authorization: Authorization: Bearer <κλειδί>.

Παράμετροι διαδρομής

  • source_idintegerυποχρεωτικό

Παράμετροι ερωτήματος

  • sync_numberinteger

Παράμετροι κεφαλίδας

  • Idempotency-Keystring

    Κλειδί για ασφαλή επανάληψη μιας εγγραφής δεδομένων: 1 έως 255 εκτυπώσιμοι χαρακτήρες ASCII· συνιστάται ένα UUID v4 ανά λογική λειτουργία. Επανάληψη με το ίδιο κλειδί εντός 24 ωρών δεν εκτελεί ξανά τη λειτουργία: επιστρέφει την αποθηκευμένη απόκριση (κατάσταση, κεφαλίδες και σώμα) με την κεφαλίδα Idempotency-Replayed: true. Το ίδιο κλειδί με διαφορετική μέθοδο, διαδρομή, Content-Type ή σώμα επιστρέφει 409 api.idempotency_mismatch· όσο το πρώτο αίτημα εκτελείται ακόμη – 409 api.idempotency_in_progress με Retry-After: 1. Μετά από απόκριση 5xx ή 429 το κλειδί αποδεσμεύεται, και η επανάληψη εκτελεί ξανά τη λειτουργία. Το κλειδί ισχύει στο πλαίσιο του οργανισμού και του πελάτη που καλεί το API (κλειδί API, χρήστης ή κλειδί προσαρμοσμένης πηγής).

    length ≥ 1, length ≤ 255

Σώμα αιτήματος

application/json

Αντικείμενο: PushDocument

  • external_idstringυποχρεωτικό

    Το σταθερό ID του εγγράφου σας. Η αποστολή του ίδιου ID αντικαθιστά το έγγραφο.

    length ≤ 512

  • titlestringυποχρεωτικό

    length ≤ 500

  • urlstring

    Σύνδεσμος προς το έγγραφο στο σύστημά σας (http ή https).

  • contentstring

    Περιεχόμενο (έως 5 MB).

  • content_typestring

    Επιτρεπόμενες τιμές: htmlmarkdowntext

    Προεπιλογή: "html"

  • patharray of string | string

    Φάκελοι του εγγράφου: ένας πίνακας ονομάτων ή μια συμβολοσειρά χωρισμένη με «/» (έως 10 επίπεδα).

  • permissionsPushPermissions
  • tagsarray of string

    items ≤ 50

  • author_emailstring

    Συγγραφέας. Γίνεται υπεύθυνος της κάρτας, αν είναι χρήστης της Sursa.

  • updated_atstring (date-time)

    Χρόνος τροποποίησης στο σύστημά σας (μέρος της έκδοσης του εγγράφου).

  • metadata της κάρτας του εγγράφου (από την 1.62.0): το αντικείμενο αντικαθιστά το προηγούμενο της κάρτας, το {} αφαιρεί όλα τα ζεύγη· χωρίς το πεδίο metadata τα μεταδεδομένα της κάρτας δεν αλλάζουν.

  • categorystring

    Κατηγορία της κάρτας: το κλειδί μιας κατηγορίας του οργανισμού (GET /v1/categories), από την 1.62.0.

    length ≤ 64

  • verifiersPushVerifiers
  • verify_interval_daysinteger

    Διάστημα επαλήθευσης της κάρτας σε ημέρες (από την 1.62.0)· χωρίς αυτό ισχύει το διάστημα της πηγής.

    ≥ 1, ≤ 3650

  • upload_idstring

    Αρχείο του εγγράφου από μεταφόρτωση σε τμήματα (upl_…, από την 1.62.0) αντί για content. Μια μεταφόρτωση χρησιμοποιείται μία φορά· η εκ νέου αποστολή του ίδιου εγγράφου με το ίδιο upload_id δεν την αναλώνει. Όσο οι μεταφορτώσεις σε τμήματα δεν είναι διαθέσιμες στην εγκατάσταση, το έγγραφο απορρίπτεται με λόγο file_rejected.

    length ≤ 64

  • attachmentsarray of string

    Συνημμένα του εγγράφου ως μεταφορτώσεις σε τμήματα (upl_…, από την 1.62.0): το καθένα γίνεται ξεχωριστή κάρτα της πηγής με τον ίδιο φάκελο, τα ίδια δικαιώματα και τα ίδια πεδία κάρτας. Ένα συνημμένο που λείπει από νέα έκδοση του εγγράφου αρχειοθετείται.

    items ≤ 20

multipart/form-data

  • filestring (binary)υποχρεωτικό
  • documentstring

    Μεταδεδομένα JSON του εγγράφου (τα πεδία του PushDocument χωρίς content).

  • external_idstring
  • titlestring
  • urlstring
  • pathstring
  • tagsstring

Αποκρίσεις

200Γράφτηκε

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

  • Idempotency-Replayed

    Το true σημαίνει ότι η απόκριση επαναλήφθηκε από την αποθηκευμένη για αυτό το Idempotency-Key: η λειτουργία δεν εκτελέστηκε ξανά.

application/json

Αντικείμενο: PushDocumentResult

  • external_idstringυποχρεωτικό
  • resultstringυποχρεωτικό

    skipped: ένα έγγραφο μιας παρτίδας atomic δεν εφαρμόστηκε, επειδή απορρίφθηκε άλλο έγγραφο (από την 1.62.0).

    Επιτρεπόμενες τιμές: createdupdatedunchangeddeletednot_founderrorskipped

  • versionstring

    Έκδοση του εγγράφου (SHA-256 του περιεχομένου και των μεταδεδομένων).

  • errorstring

    Λόγος (όταν result = error).

  • card_idstring | null

    Κάρτα του εγγράφου, αν έχει ήδη γραφτεί (από την 1.62.0).

400Το αίτημα δεν είναι έγκυρο: η τιμή μιας παραμέτρου ή η κατάσταση του αντικειμένου δεν επιτρέπει την ενέργεια (το `detail` είναι μήνυμα).

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

401Δεν στάλθηκαν διαπιστευτήρια (ούτε cookie συνεδρίας ούτε κλειδί API) ή το κλειδί δεν βρέθηκε.

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

403Η ενέργεια δεν επιτρέπεται: ο ρόλος δεν επαρκεί, δεν υπάρχει πρόσβαση στη συλλογή ή στην κάρτα, το αίτημα εκτελείται στη λειτουργία «View as» ή ο οργανισμός έχει ανασταλεί ή διαγραφεί (το `detail` είναι αντικείμενο με `code: org_suspended | org_deleted`).

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

404Το αντικείμενο δεν υπάρχει ή δεν είναι διαθέσιμο σε εσάς. Το API δεν επιβεβαιώνει ότι υπάρχει ένα αντικείμενο περιορισμένης πρόσβασης.

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

409Η κατάσταση του αντικειμένου δεν επιτρέπει την ενέργεια, για παράδειγμα διπλότυπο, ευρετηρίαση σε εξέλιξη ή εργασία που έχει ήδη υποβληθεί σε επεξεργασία.

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

413Το σώμα του αιτήματος υπερβαίνει το επιτρεπόμενο μέγεθος.

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

415Η μορφή του αρχείου δεν υποστηρίζεται.

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

422Σφάλμα επικύρωσης: το σώμα ή οι παράμετροι δεν αντιστοιχούν στο σχήμα (το `detail` είναι λίστα σφαλμάτων επικύρωσης) ή η τιμή μιας παραμέτρου είναι εκτός εύρους (το `detail` είναι μήνυμα).

Κεφαλίδες απόκρισης

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

429Πάρα πολλά αιτήματα (`api.rate_limited`), η ποσόστωση του οργανισμού για το λεπτό, την ημέρα ή τον μήνα εξαντλήθηκε (`api.quota_exceeded`· το `error.details` περιέχει τα `quota`, `limit` και `reset_at`), ο οργανισμός έφτασε στο όριό του ή η υπηρεσία απαντήσεων είναι απασχολημένη (`answers.engine_busy`). Περιμένετε τον χρόνο που δίνει η κεφαλίδα `Retry-After`.

Κεφαλίδες απόκρισης

  • Retry-After

    Αριθμός δευτερολέπτων αναμονής πριν επαναλάβετε το αίτημα.

  • RateLimit-Policy

    Τα όρια σε ισχύ, στη μορφή του προσχεδίου IETF draft-ietf-httpapi-ratelimit-headers: στοιχεία χωρισμένα με κόμμα "<name>";q=<quota>;w=<window in seconds>. Το key είναι ο ρυθμός αιτημάτων του κλειδιού API (η ποσόστωση είναι η ριπή, το παράθυρο είναι ο χρόνος για την πλήρη αναπλήρωσή της· για μια συνεδρία είναι user, χωρίς διαπιστευτήρια ip)· τα minute, day και month είναι οι ποσοστώσεις του οργανισμού για το ημερολογιακό λεπτό, την ημέρα και τον μήνα σε UTC.

  • RateLimit

    Τι απομένει από κάθε όριο του RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Όριο της αυστηρότερης εγγραφής του RateLimit-Policy (εκείνης με τα λιγότερα εναπομείναντα αιτήματα).

  • X-RateLimit-Remaining

    Αιτήματα που απομένουν στο αυστηρότερο όριο.

  • X-RateLimit-Reset

    Δευτερόλεπτα έως τον μηδενισμό του αυστηρότερου ορίου.

Κωδικοί σφαλμάτων

Κωδικοί που μπορεί να επιστρέψει αυτό το τελικό σημείο στο error.code, εκτός από τους γενικούς κωδικούς κάθε αιτήματος.

Ασφαλείς επαναλήψεις

Στείλτε μια κεφαλίδα Idempotency-Key (για παράδειγμα ένα UUID) με κάθε POST και PATCH. Μια επανάληψη με το ίδιο κλειδί εντός 24 ωρών επιστρέφει την αποθηκευμένη απόκριση αντί να εκτελέσει ξανά το αίτημα.

Όρια ρυθμού

Οι αποκρίσεις περιέχουν τις κεφαλίδες RateLimit και RateLimit-Policy, καθώς και τις παλαιότερες X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset. Μια απόκριση 429 έχει την κεφαλίδα Retry-After σε δευτερόλεπτα: περιμένετε και επαναλάβετε το αίτημα.

← sources · Αναφορά API