Τεκμηρίωση API

Το API του YourImageShare σάς επιτρέπει να ανεβάζετε, να εμφανίζετε και να διαγράφετε αρχεία προγραμματιστικά. Είναι ένα μικρό JSON/REST API - δεν χρειάζεται SDK, μόνο ένας HTTP client και ένα κλειδί API - ενώ διατίθενται και επίσημες βιβλιοθήκες JavaScript, Python και MCP.

Όλες οι βιβλιοθήκες και τα εργαλεία παρακάτω είναι ανοιχτού κώδικα. Δείτε τον κώδικα, αναφέρετε προβλήματα ή συνεισφέρετε στο επίσημο αποθετήριό μας στο GitHub: github.com/yourimageshare/yourimageshare.

Βασικό URL: https://yourimageshare.com/api · Μορφή: JSON στην είσοδο και στην έξοδο, εκτός από τα ανεβάσματα που είναι multipart/form-data · Έλεγχος ταυτότητας: ένα κλειδί API σε κάθε αίτημα. · Προδιαγραφή για μηχανές: /openapi.json (OpenAPI 3.1), για πράκτορες και εργαλεία παραγωγής κώδικα που προτιμούν να μην αναλύουν αυτή τη σελίδα.

Απόκτηση κλειδιού API

Συνδεθείτε, μεταβείτε στον Λογαριασμό μου και ανοίξτε την καρτέλα API. Εκεί εμφανίζεται το κλειδί σας, μαζί με ένα κουμπί Δημιουργία νέου. Η δημιουργία νέου κλειδιού ακυρώνει αμέσως το παλιό, οπότε ενημερώστε όλα τα σημεία όπου χρησιμοποιείται πριν το πατήσετε.

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

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

Στείλτε το κλειδί σας ως header - προτιμότερο, γιατί τα query strings καταλήγουν συχνά στα αρχεία καταγραφής πρόσβασης, στα logs των proxy και στα headers Referer:

X-API-Key: YOUR_API_KEY

Λειτουργεί και η παράμετρος ?key= στο query, για συμβατότητα με παλαιότερες ενσωματώσεις και γρήγορες εφάπαξ εντολές curl. Αν υπάρχουν και τα δύο, υπερισχύει το header.

?key=YOUR_API_KEY

Συμβουλή: Αντιμετωπίστε το κλειδί σας σαν κωδικό πρόσβασης - όποιος το έχει μπορεί να ανεβάζει, να εμφανίζει, να αλλάζει και να διαγράφει στον λογαριασμό σας. Κάθε επιτυχές αίτημα καταγράφεται και εμφανίζεται σε γράφημα στην καρτέλα API της σελίδας του λογαριασμού σας, ανά ημέρα και ανά τύπο αιτήματος. Αν ένα κλειδί πρέπει να βρίσκεται κάπου όπου μπορούν να το δουν άλλοι - σε ένα πρόσθετο φόρουμ, σε ένα δημόσιο αρχείο ρυθμίσεων - χρησιμοποιήστε το κλειδί μόνο για ανέβασμα από την ίδια καρτέλα: μπορεί μόνο να ανεβάζει - η εμφάνιση λίστας, η αναζήτηση, η αλλαγή και η διαγραφή ανεβασμένων αρχείων το απορρίπτουν με 401.

Endpoints

Το ανέβασμα, η λίστα και η διαγραφή έχουν κοινό έλεγχο ταυτότητας και όρια χρήσης· τα μεγάλα αρχεία μπορούν να σταλούν πρώτα σε κομμάτια.

POST /api - Ανέβασμα αρχείου

Ανεβάζει ένα αρχείο για τον ταυτοποιημένο λογαριασμό.

ΠεδίοΤύποςΑπαιτείταιΠεριγραφή
uploadsαρχείοένα από αυτά τα τρίαΤο αρχείο προς ανέβασμα, έως 100MB (το όριο για ένα μεμονωμένο αίτημα μέσω του δικτύου μας). Ένα αρχείο ανά αίτημα - αυτό το endpoint δεν υποστηρίζει μαζικό ανέβασμα πολλών αρχείων.
urlstringΈνας δημόσιος σύνδεσμος http(s) προς εικόνα ή βίντεο. Το κατεβάζουμε εμείς, οπότε λειτουργούν αρχεία έως 200MB.
upload_idstringΈνα αρχείο που έχει σταλεί σε κομμάτια στο POST /api/chunk εκ των προτέρων, έως 200MB.
filenamestringόχιΜε το upload_id: το αρχικό όνομα του αρχείου.
expires_inintegerόχιΑυτόματη διαγραφή του ανεβάσματος μετά από τόσα δευτερόλεπτα (60 έως 31.536.000, δηλαδή 1 λεπτό έως 1 έτος). Παραλείψτε το για κανονικό, μόνιμο ανέβασμα.
allow_duplicatebooleanόχιΑποθήκευση νέου αντιγράφου ακόμη κι αν ο λογαριασμός σας έχει ήδη ανεβάσει το ίδιο ακριβώς αρχείο (δείτε το duplicate παρακάτω).
keep_originalbooleanόχιΔιατήρηση της εικόνας ακριβώς όπως ανέβηκε. Χωρίς αυτό, τα αρχεία JPG/PNG άνω του 1 MB βελτιστοποιούνται σε WebP. Τα μεταδεδομένα, όπως το GPS, αφαιρούνται σε κάθε περίπτωση.
visibilitystringόχιunlisted (προεπιλογή): το αρχείο και η σελίδα του λειτουργούν για όποιον έχει τον σύνδεσμο, αλλά δεν εμφανίζεται πουθενά. private: μόνο το αρχείο - ο σύνδεσμος της σελίδας οδηγεί όλους εκτός από εσάς κατευθείαν στο αρχείο (χωρίς σχόλια, αντιδράσεις ή διαφημίσεις). public: εμφανίζεται στον ιστότοπο και μπορεί να ευρετηριαστεί.
titlestringόχιΈως 90 χαρακτήρες, εμφανίζεται στη σελίδα του ανεβάσματος.
descriptionstringόχιΈως 500 χαρακτήρες.

Αποδεκτοί τύποι: εικόνες JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC ή HEIF· βίντεο MP4, WEBM ή AVI (η ακριβής λίστα μπορεί να επεκταθεί με τον χρόνο). Τα HEIC/HEIF και TIFF αποθηκεύονται ως WebP, τα βίντεο εκτός από MP4/WebM μετατρέπονται σε MP4, και οι μεγαλύτερες εικόνες JPEG/PNG μετατρέπονται σε WebP λίγο μετά το ανέβασμα όταν αυτό τις κάνει αισθητά μικρότερες. Μέγιστο μέγεθος: 200MB· τα αρχεία που το υπερβαίνουν ή δεν διαβάζονται απορρίπτονται με 422.

Απάντηση - 200 OK:

{
  "type": "success",
  "msg": "success",
  "data": {
    "id": "aB3xY9qRz1",
    "type": "image",
    "path": "https://i.yourimageshare.com/aB3xY9qRz1.png",
    "src": "https://yourimageshare.com/ib/aB3xY9qRz1.png",
    "direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
    "thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
    "width": 1920,
    "height": 1080,
    "size": 482113,
    "locked": false,
    "visibility": "unlisted",
    "title": null,
    "description": null,
    "expires_at": null,
    "duplicate": false,
    "delete_url": "https://yourimageshare.com/delete#iV3x...k9"
  }
}
ΠεδίοΠεριγραφή
idΤο μοναδικό αναγνωριστικό του αρχείου.
typeimage ή video.
pathΤο URL αποθήκευσης του αρχείου όπως ανέβηκε. Μπορεί να αλλάξει λίγο μετά, όταν το αρχείο μετατραπεί (WebP/MP4), οπότε αποθηκεύστε το src, όχι το path.
srcΜόνιμο άμεσο URL του αρχείου - ανοίγει πάντα το τρέχον αρχείο, κατάλληλο για src σε <img>/<video> και για αποθήκευση.
directΗ σελίδα του αρχείου στο YourImageShare (τίτλος, περιγραφή, σχόλια, επιλογές κοινοποίησης).
thumbΜια μικρογραφία WebP πλάτους 280px (για βίντεο, το πρώτο καρέ), ή null.
width, heightΜέγεθος προβολής σε pixel (σε όρθια θέση· για βίντεο, το μέγεθος του καρέ), ή null αν είναι άγνωστο.
sizeΜέγεθος αρχείου σε bytes όπως αποθηκεύτηκε.
lockedtrue αν το ανέβασμα προστατεύεται με κωδικό.
visibilityprivate, unlisted ή public (δείτε το πεδίο του αιτήματος παραπάνω).
title, descriptionΌπως ορίστηκαν, ή null. Το κείμενο περνά από τον ίδιο έλεγχο moderation με τον ιστότοπο.
delete_urlΜόνο για νέα ανεβάσματα: ένας ιδιωτικός σύνδεσμος που διαγράφει αυτό το ανέβασμα χωρίς κλειδί API. Εμφανίζεται μία φορά (αποθηκεύεται μόνο ένα hash) - κρατήστε τον αν τον χρειάζεστε.
expires_atΧρονική σήμανση ISO 8601 της αυτόματης διαγραφής του ανεβάσματος, ή null αν δεν λήγει.
duplicatetrue αν ο λογαριασμός σας είχε ήδη ανεβάσει το ίδιο ακριβώς αρχείο: επιστρέφεται το υπάρχον ανέβασμα και δεν αποθηκεύεται τίποτα νέο. Δεν ισχύει για ανεβάσματα που λήγουν ή με allow_duplicate=1.

Ανεβάσματα που λήγουν: μόλις περάσει το expires_at, το αρχείο διαγράφεται από την αποθήκευση και η σελίδα του ανεβάσματος αρχίζει να επιστρέφει 410 Gone μέσα σε περίπου 5 λεπτά. Αυτό δεν μπορεί να αναιρεθεί ή να παραταθεί εκ των υστέρων - διαγράψτε νωρίτερα με το endpoint DELETE αν χρειάζεται να το αφαιρέσετε πιο σύντομα, ή ανεβάστε ξανά με νέο expires_in αν χρειάζεται να διαρκέσει περισσότερο.

POST /api/chunk - Μεγάλα αρχεία

Ένα μεμονωμένο αίτημα μπορεί να μεταφέρει το πολύ 100MB. Για μεγαλύτερα αρχεία (έως 200MB), ή για να κρατάτε μικρό κάθε αίτημα σε αργή σύνδεση, στείλτε το αρχείο σε κομμάτια των 5MB το πολύ και ολοκληρώστε με POST /api:

  1. Επιλέξτε ένα upload id: 32 τυχαίοι δεκαεξαδικοί χαρακτήρες.
  2. Για κάθε κομμάτι, κάντε POST /api/chunk (multipart/form-data) με upload_id, index (ξεκινά από 0), total (αριθμός κομματιών) και τα bytes στο chunk. Η απάντηση είναι {"type": "success", "chunk_size": 5242880}.
  3. POST /api με upload_id και filename αντί για uploads, μαζί με τυχόν άλλα πεδία ανεβάσματος. Η απάντηση είναι η κανονική απάντηση ανεβάσματος.

Τα κομμάτια ενός ανεβάσματος που δεν ολοκληρώθηκε διαγράφονται μετά από 2 ώρες. Μόνο το τελικό POST /api προσμετράται στα όρια ανεβασμάτων.

GET /api/{id} και PATCH /api/{id} - Ένα ανέβασμα

Το GET επιστρέφει ένα από τα ανεβάσματά σας με τα ίδια πεδία με τη λίστα παρακάτω. Το PATCH αλλάζει τα visibility, title ή description (πεδία φόρμας ή JSON· ένας κενός τίτλος ή μια κενή περιγραφή τα καθαρίζει) και απαντά με το ενημερωμένο ανέβασμα. Και τα δύο απαιτούν το πλήρες κλειδί API· 404 αν δεν υπάρχει τέτοιο ανέβασμα στον λογαριασμό σας.

curl -X PATCH https://yourimageshare.com/api/aB3xY9qRz1 \
  -H "X-API-Key: YOUR_API_KEY" -d visibility=public -d title="Sunset"

POST /api/{id}/replace - Αντικατάσταση αρχείου

Αλλάζει το αρχείο πίσω από ένα από τα ανεβάσματά σας και διατηρεί το id, τη σελίδα και όλους τους συνδέσμους του. Λειτουργεί οποιοσδήποτε επιτρεπόμενος τύπος, ακόμη και διαφορετικός (μια εικόνα μπορεί να γίνει βίντεο). Στείλτε το νέο αρχείο ως uploads (ή το upload_id ενός αρχείου που στάλθηκε σε κομμάτια με POST /api/chunk)· το keep_original λειτουργεί όπως στο ανέβασμα. Το νέο αρχείο υφίσταται τους ίδιους ελέγχους και μετατροπές με ένα νέο ανέβασμα και η προηγούμενη έκδοση αφαιρείται. Απαιτεί το πλήρες κλειδί API· 404 αν δεν υπάρχει τέτοιο ανέβασμα στον λογαριασμό σας, 409 αν προστατεύεται με κωδικό ή έχει όριο προβολών.

curl -X POST https://yourimageshare.com/api/aB3xY9qRz1/replace \
  -H "X-API-Key: YOUR_API_KEY" -F [email protected]

GET /api - Λίστα των ανεβασμάτων σας

Επιστρέφει σελιδοποιημένη λίστα με τα ανεβάσματα του ταυτοποιημένου λογαριασμού (από οποιαδήποτε πηγή - API, ιστότοπο ή πρόγραμμα επεξεργασίας), τα νεότερα πρώτα, 50 ανά σελίδα.

ΠαράμετροςΘέσηΑπαιτείταιΠεριγραφή
pagequeryόχιΑριθμός σελίδας, προεπιλογή 1.

Απάντηση - 200 OK:

{
  "type": "success",
  "data": [
    {
      "id": "aB3xY9qRz1",
      "type": "image",
      "title": null,
      "path": "https://i.yourimageshare.com/aB3xY9qRz1.webp",
      "src": "https://yourimageshare.com/ib/aB3xY9qRz1.webp",
      "direct": "https://yourimageshare.com/ib/aB3xY9qRz1",
      "thumb": "https://i.yourimageshare.com/thumb-aB3xY9qRz1.webp",
      "width": 1920,
      "height": 1080,
      "size": 482113,
      "locked": false,
      "visibility": "unlisted",
      "description": null,
      "expires_at": null,
      "created_at": "2026-07-23T15:43:28+01:00"
    }
  ],
  "meta": { "current_page": 1, "last_page": 1, "total": 1 }
}

Τα πεδία σημαίνουν εδώ το ίδιο με την απάντηση ανεβάσματος παραπάνω (για ανέβασμα που προστατεύεται με κωδικό, τα path και thumb είναι υπογεγραμμένοι σύνδεσμοι μικρής διάρκειας). Δεν υπάρχει ακόμη ξεχωριστό endpoint "λήψη ενός ανεβάσματος", οπότε αυτή η λίστα είναι και ο τρόπος να βρείτε το id ενός αρχείου εκ των υστέρων.

DELETE /api/{id} - Διαγραφή ανεβάσματος

Διαγράφει οριστικά ένα από τα ανεβάσματα του ταυτοποιημένου λογαριασμού. Δεν μπορεί να αναιρεθεί μέσω του API. Το {id} είναι η τιμή που επιστρέφεται ως id από τα endpoints ανεβάσματος ή λίστας.

Απάντηση - 200 OK:

{ "type": "success", "msg": "Deleted." }

404 αν δεν υπάρχει ανέβασμα με αυτό το id στον λογαριασμό σας (είτε δεν ήταν ποτέ δικό σας, είτε έχει ήδη διαγραφεί).

Όρια χρήσης

Κάθε κλειδί API έχει ανεξάρτητα όρια ανά λεπτό και ανά ημέρα, καθώς και ένα πιο αυστηρό ημερήσιο όριο ανά IP ως δικλίδα ασφαλείας, ώστε μία IP να μην περνά από πολλά κλειδιά. Τα ανεβάσματα, οι λίστες και οι διαγραφές μοιράζονται τα ίδια όρια.

ΠερίοδοςΠροεπιλεγμένο όριοΕύρος
Ανά λεπτό20 αιτήματαανά κλειδί API
Ανά ημέρα500 αιτήματαανά πλήρες κλειδί API
Ανά ημέρα2.000 αιτήματαανά κλειδί μόνο για ανέβασμα (πρόσθετα που μεταφέρουν ολόκληρες βιβλιοθήκες πολυμέσων)
Ανά ημέρα2.000 αιτήματαανά διεύθυνση IP
Ανά λεπτό300 κομμάτιαανά κλειδί API, μόνο για POST /api/chunk

Αυτά τα όρια μπορεί να αλλάξουν. Κάθε απάντηση περιλαμβάνει τυπικά headers ορίων:

X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14

Όταν ξεπεραστεί ένα όριο επιστρέφεται 429, με header Retry-After που δείχνει πόσα δευτερόλεπτα να περιμένετε.

Σφάλματα

Κάθε απάντηση σφάλματος έχει την ίδια μορφή, ανεξάρτητα από το endpoint ή την αιτία:

{ "type": "error", "errors": "A human-readable description of what went wrong." }
ΚατάστασηΣημασία
401Λείπει το κλειδί API ή δεν είναι έγκυρο.
403Ο λογαριασμός ή η τρέχουσα IP σας έχει αποκλειστεί από το ανέβασμα.
404Δεν βρέθηκε ανέβασμα με αυτό το id σε αυτόν τον λογαριασμό (λήψη, αλλαγή, διαγραφή).
413Το αίτημα ξεπερνά τα 100MB. Στείλτε το αρχείο σε κομμάτια (POST /api/chunk) ή έναν σύνδεσμο προς αυτό στο url (έως 200MB).
422Αποτυχία επικύρωσης - δεν δόθηκε αρχείο ή σύνδεσμος, μη υποστηριζόμενος τύπος αρχείου, μη αναγνώσιμα δεδομένα εικόνας, διαστάσεις πάνω από το όριο 30000x30000px, αρχείο πάνω από 200MB, ημιτελές ή ληγμένο upload_id, ή url που δεν μπόρεσε να ληφθεί (το μήνυμα εξηγεί γιατί).
429Ξεπεράστηκε το όριο χρήσης - δείτε τα Όρια χρήσης παραπάνω.
500Κάτι απέτυχε απροσδόκητα στον διακομιστή. Μπορείτε να δοκιμάσετε ξανά με ασφάλεια.

Βιβλιοθήκες

Επίσημα SDK που τυλίγουν τα παραπάνω endpoints με τυποποιημένα αποτελέσματα και προκαλούν εξαίρεση σε σφάλματα API αντί για άμεσο χειρισμό HTTP.

JavaScript / TypeScript

Χωρίς εξαρτήσεις, λειτουργεί σε Node.js και σε προγράμματα περιήγησης. Διατίθεται και στο JSR ως @yourimageshare/yourimageshare - npx jsr add @yourimageshare/yourimageshare - ίδιος κώδικας, δημοσιευμένος απευθείας ως TypeScript.

npm install yourimageshare

Python

Μία εξάρτηση (requests), Python 3.8+.

pip install yourimageshare

PHP

Χωρίς εξαρτήσεις Composer (χρησιμοποιεί την ίδια την επέκταση curl της PHP), PHP 7.4+. Κώδικας στο GitHub.

composer require yourimageshare/yourimageshare-php

Go

Χωρίς εξαρτήσεις (μόνο η τυπική βιβλιοθήκη), Go 1.18+. Δείτε το pkg.go.dev για πλήρη τεκμηρίωση αναφοράς.

go get github.com/yourimageshare/yourimageshare/go

Rust

Δύο εξαρτήσεις (ureq για blocking HTTP - χωρίς async runtime - και serde), Rust 1.70+. Κώδικας στο GitHub.

cargo add yourimageshare

Ruby

Χωρίς εξαρτήσεις gem (stdlib Net::HTTP + json), Ruby 2.7+. Κώδικας στο GitHub.

gem install yourimageshare

.NET

Μία εξάρτηση (το System.Text.Json της Microsoft), στοχεύει netstandard2.0 ώστε να λειτουργεί τόσο σε .NET Framework όσο και σε σύγχρονο .NET. Κώδικας στο GitHub. Δημιουργήθηκε και επαληθεύτηκε με αυτό το ζωντανό API· η δημοσίευση στο NuGet έρχεται σύντομα.

dotnet add package YourImageShare

Dart / Flutter

Μία εξάρτηση (http, το επίσημο πακέτο της ομάδας Dart), Dart 2.17+. Κώδικας στο GitHub. Δημιουργήθηκε και επαληθεύτηκε με αυτό το ζωντανό API· η δημοσίευση στο pub.dev έρχεται σύντομα.

dart pub add yourimageshare

Elixir

Μία εξάρτηση (Req), Elixir 1.14+. Επιστρέφει tuples {:ok, result}| {:error, reason} - το άμεσο αντίστοιχο του χειρισμού σφαλμάτων αυτού του API σε όλα τα άλλα SDK - και επιπλέον παραλλαγές με bang που προκαλούν εξαίρεση. Κώδικας στο GitHub, τεκμηρίωση στο HexDocs.

{:yourimageshare, "~> 1.1"}

MCP Server

Για πράκτορες προγραμματισμού AI (Claude Code, Cursor και άλλα εργαλεία συμβατά με MCP) - βάλτε ένα στιγμιότυπο σε αναφορά σφάλματος, σε περιγραφή PR ή σε συζήτηση υποστήριξης ως πραγματικό URL αντί για blob base64 ή χειροκίνητο βήμα ανεβάσματος. Λειτουργεί με τον ίδιο τρόπο με το Claude Desktop και κάθε άλλο πελάτη MCP. Εκτελέστε το απευθείας με npx, χωρίς βήμα εγκατάστασης:

npx yourimageshare-mcp

Εργαλεία: upload_image (τοπικό αρχείο, ενσωματωμένο περιεχόμενο ή σύνδεσμος, έως 200MB, με προαιρετική ορατότητα, τίτλο και αυτόματη διαγραφή), list_uploads, get_upload, update_upload και delete_upload.

Υπάρχει επίσης στο επίσημο MCP Registry (ως io.github.yourimageshare/yourimageshare) και στα Smithery και Glama, αν ο πελάτης MCP που χρησιμοποιείτε εγκαθιστά από κάποιο από αυτά.

Είστε νέοι στο MCP; Δείτε πώς να συνδέσετε το Claude και το ChatGPT σε αυτό το API μέσω MCP για έναν πλήρη οδηγό ρύθμισης.

Και τα δέκα διατίθενται με άδεια MIT. Δεν υπάρχει επίσημη βιβλιοθήκη για τη γλώσσα σας; Τα παραδείγματα κώδικα παρακάτω δείχνουν πώς να καλέσετε το API απευθείας.

Παραδείγματα κώδικα

curl

# Upload a file
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg"

# Upload from a link (files up to 200MB; one direct upload request stops at 100MB -
# bigger files go in pieces, see Large Files above)
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "url=https://example.com/video.mp4"

# Upload a file that auto-deletes after 1 hour
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg" \
  -F "expires_in=3600"

# List uploads
curl "https://yourimageshare.com/api" -H "X-API-Key: YOUR_API_KEY"

# Upload a file without a page of its own (file only) and give it a title
curl "https://yourimageshare.com/api" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "uploads=@/path/to/photo.jpg" \
  -F "visibility=private" \
  -F "title=Sunset"

# Look up one upload, then make it public
curl "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"
curl -X PATCH "https://yourimageshare.com/api/aB3xY9qRz1" \
  -H "X-API-Key: YOUR_API_KEY" -d "visibility=public"

# Delete an upload
curl -X DELETE "https://yourimageshare.com/api/aB3xY9qRz1" -H "X-API-Key: YOUR_API_KEY"

JavaScript (fetch)

const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://yourimageshare.com/api';

async function uploadFile(file) {
  const form = new FormData();
  form.append('uploads', file);

  const res = await fetch(BASE, {
    method: 'POST',
    headers: { 'X-API-Key': API_KEY },
    body: form,
  });
  const json = await res.json();
  if (json.type !== 'success') throw new Error(json.errors);
  return json.data;
}

async function listUploads(page = 1) {
  const res = await fetch(`${BASE}?page=${page}`, {
    headers: { 'X-API-Key': API_KEY },
  });
  return res.json();
}

async function deleteUpload(id) {
  const res = await fetch(`${BASE}/${id}`, {
    method: 'DELETE',
    headers: { 'X-API-Key': API_KEY },
  });
  return res.json();
}

Python (requests)

import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://yourimageshare.com/api"

HEADERS = {"X-API-Key": API_KEY}

# Upload a file
with open("/path/to/photo.jpg", "rb") as f:
    res = requests.post(BASE, headers=HEADERS, files={"uploads": f})
res.raise_for_status()
upload = res.json()["data"]

# List uploads
res = requests.get(BASE, headers=HEADERS, params={"page": 1})
uploads = res.json()

# Delete an upload
res = requests.delete(f"{BASE}/{upload['id']}", headers=HEADERS)

PHP (curl)

<?php

$apiKey = 'YOUR_API_KEY';
$base = 'https://yourimageshare.com/api';

// Upload a file
$curl = curl_init($base);
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
    CURLOPT_POSTFIELDS => ['uploads' => new CURLFile('/path/to/photo.jpg')],
    CURLOPT_RETURNTRANSFER => true,
]);
$upload = json_decode(curl_exec($curl), true)['data'];
curl_close($curl);

// List uploads
$curl = curl_init("$base?page=1");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-API-Key: $apiKey"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$uploads = json_decode(curl_exec($curl), true);
curl_close($curl);

Go (net/http)

Το επίσημο SDK για Go παραπάνω το τυλίγει για εσάς - αυτή η «ωμή» εκδοχή υπάρχει για όσους προτιμούν να μην προσθέσουν την εξάρτηση.

package main

import (
    "bytes"
    "encoding/json"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

const apiKey = "YOUR_API_KEY"
const base = "https://yourimageshare.com/api"

func uploadFile(path string) (map[string]any, error) {
    file, err := os.Open(path)
    if err != nil {
        return nil, err
    }
    defer file.Close()

    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    part, _ := writer.CreateFormFile("uploads", path)
    io.Copy(part, file)
    writer.Close()

    req, _ := http.NewRequest("POST", base, body)
    req.Header.Set("Content-Type", writer.FormDataContentType())
    req.Header.Set("X-API-Key", apiKey)

    res, err := http.DefaultClient.Do(req)
    if err != nil {
        return nil, err
    }
    defer res.Body.Close()

    var result map[string]any
    json.NewDecoder(res.Body).Decode(&result)
    return result, nil
}

Εργαλεία στιγμιότυπων

Μια επέκταση προγράμματος περιήγησης μαζί με έτοιμες ρυθμίσεις και scripts για να στέλνετε στιγμιότυπα απευθείας στο YourImageShare, χωρίς χειροκίνητο ανέβασμα. Κάθε εργαλείο ανεβάζει μέσω του ίδιου endpoint /api που περιγράφεται παραπάνω.

Επέκταση προγράμματος περιήγησης (Chrome & Firefox)

Η επέκταση YourImageShare Capture για Chrome και Firefox παρακάμπτει εντελώς scripts και αρχεία ρυθμίσεων. Καταγράφει την ορατή περιοχή, μια περιοχή που επιλέγετε με σύρσιμο ή μια ολόκληρη σελίδα με κύλιση, ανοίγει ενσωματωμένο πρόγραμμα επεξεργασίας για βέλη, κείμενο, θόλωμα/απόκρυψη και άλλους σχολιασμούς, και μετά κατεβάζει το αποτέλεσμα, το αντιγράφει στο πρόχειρο ή το δημοσιεύει απευθείας στο YourImageShare με ένα κλικ. Η δημοσίευση χρησιμοποιεί το ίδιο endpoint /api που περιγράφεται παραπάνω - προσθέστε μία φορά το κλειδί API σας στις Ρυθμίσεις της επέκτασης και κάθε δημοσίευση από εκεί και πέρα επιστρέφει αμέσως σύνδεσμο για κοινοποίηση. Λειτουργεί στο Chrome για υπολογιστή (και σε άλλα προγράμματα περιήγησης Chromium), στο Firefox για υπολογιστή και στο Firefox για Android.

Λήψη του YourImageShare Capture για Firefox Λήψη του YourImageShare Capture για Chrome

ShareX

Κατεβάστε τον προσαρμοσμένο uploader παρακάτω και, στο ShareX, μεταβείτε στο Destinations > Custom uploader settings > Import > from file, ανοίξτε το κατεβασμένο .sxcu και αντικαταστήστε το YOUR_API_KEY στο πεδίο Headers με το πραγματικό κλειδί σας. Ορίστε το ως προορισμό εικόνων/αρχείων και οι λήψεις θα ανεβαίνουν αυτόματα.

Λήψη του YourImageShare.sxcu

Διαγραφή: ο σύνδεσμος "Delete" του ShareX για κάθε ανέβασμα ανοίγει τη σελίδα διαγραφής μας στο πρόγραμμα περιήγησης (το εφάπαξ delete_url του ανεβάσματος), ώστε να αφαιρέσετε μια λήψη απευθείας από το ιστορικό του ShareX. Μπορείτε επίσης να διαγράψετε ανεβάσματα από τον Λογαριασμό μου. Κατεβάσατε το αρχείο ρυθμίσεων πριν τον Οκτώβριο του 2026; Κατεβάστε το ξανά για να το έχετε.

Flameshot (Linux)

Ένα μικρό shell script που εκτελεί το flameshot gui, ανεβάζει τη λήψη και αντιγράφει τον σύνδεσμο στο πρόχειρο. Αντιστοιχίστε το σε μια συντόμευση πληκτρολογίου στο περιβάλλον εργασίας σας στη θέση της προεπιλεγμένης του Flameshot.

Λήψη του yis-flameshot-upload.sh

# One-time setup
chmod +x yis-flameshot-upload.sh
export YIS_API_KEY="YOUR_API_KEY"   # or add to ~/.config/yourimageshare/api_key

# Then bind this to a hotkey instead of calling flameshot directly:
/path/to/yis-flameshot-upload.sh

Greenshot (Windows)

Ένα script PowerShell για τον ενσωματωμένο προορισμό External command του Greenshot. Συμβατό με το Windows PowerShell 5.1 που συνοδεύει τα Windows, χωρίς πρόσθετη εγκατάσταση.

Λήψη του yis-greenshot-upload.ps1

# One-time setup
setx YIS_API_KEY "YOUR_API_KEY"

# In Greenshot: Preferences > Destinations > External command > Settings
#   Command:   powershell.exe
#   Arguments: -ExecutionPolicy Bypass -File "C:\path\to\yis-greenshot-upload.ps1" "%1"

Πρόσθετα για φόρουμ

Προσθέστε ένα πραγματικό κουμπί «Ανέβασμα εικόνας» δίπλα στο πρόγραμμα επεξεργασίας αναρτήσεων του φόρουμ σας. Κάθε πρόσθετο ανεβάζει μέσω του ίδιου endpoint /api που περιγράφεται παραπάνω και εισάγει BBCode στη θέση του δρομέα - χωρίς ξεχωριστή καρτέλα, χωρίς χειροκίνητη αντιγραφή-επικόλληση.

Χρησιμοποιήστε το κλειδί μόνο για ανέβασμα, όχι το κλειδί API σας, παρακάτω. Κάθε πρόσθετο εμφανίζει το κλειδί στον πηγαίο κώδικα της σελίδας κάθε επισκέπτη, και το κλειδί μόνο για ανέβασμα (Λογαριασμός μου > καρτέλα API) μπορεί μόνο να ανεβάζει - δεν μπορεί να εμφανίσει ή να διαγράψει τα ανεβάσματά σας ακόμη κι αν κάποιος το αντιγράψει από τη σελίδα.

Τα ανεβάσματα φόρουμ είναι από προεπιλογή private: η εικόνα λειτουργεί στην ανάρτηση, αλλά το YourImageShare δεν της δίνει δική της σελίδα (χωρίς σχόλια, αντιδράσεις ή διαφημίσεις). Κάθε πρόσθετο έχει ρύθμιση για αλλαγή σε unlisted, αν θέλετε να υπάρχει και σελίδα για όποιον έχει τον σύνδεσμο.

phpBB

Μια πραγματική επέκταση phpBB 3.2/3.3. Αποσυμπιέστε στο ext/, ενεργοποιήστε την από Customise > Manage extensions και μετά αντικαταστήστε το YOUR_UPLOAD_ONLY_KEY στο αρχείο συμβάντων προτύπου της επέκτασης με το πραγματικό κλειδί σας μόνο για ανέβασμα.

Λήψη για phpBB

SMF (Simple Machines Forum)

Ένα πραγματικό πακέτο SMF - εγκαταστήστε το από Admin > Package Manager και μετά αντικαταστήστε το YOUR_UPLOAD_ONLY_KEY στο Sources/yis_forumupload.php με το πραγματικό κλειδί σας μόνο για ανέβασμα.

Λήψη για SMF

MyBB

Ένα πραγματικό πρόσθετο MyBB 1.8. Αντιγράψτε το στο inc/plugins/, ενεργοποιήστε το από Configuration > Plugins και μετά αντικαταστήστε το YOUR_UPLOAD_ONLY_KEY στο αρχείο του πρόσθετου με το πραγματικό κλειδί σας μόνο για ανέβασμα.

Λήψη για MyBB

FluxBB, PunBB & ZetaBoards

Αυτά δεν διαθέτουν επίσημο σύστημα πρόσθετων, οπότε πρόκειται για ένα μικρό απόσπασμα κώδικα που επικολλάται απευθείας στο πρότυπό σας (FluxBB/PunBB) ή στον Admin CP (ZetaBoards) - πλήρεις οδηγίες αντιγραφής-επικόλλησης για καθένα:

Οδηγίες FluxBB Οδηγίες PunBB Οδηγίες ZetaBoards

Πρόσθετο WordPress

Μεταφέρετε τη Βιβλιοθήκη πολυμέσων σας στο YourImageShare αντί για τον τοπικό δίσκο. Τα νέα ανεβάσματα εικόνων/βίντεο περνούν αυτόματα από το ίδιο endpoint /api που περιγράφεται παραπάνω, το τοπικό αρχείο (και κάθε παραγόμενο μέγεθος μικρογραφίας) διαγράφεται μόλις επιβεβαιωθεί το ανέβασμα, και κάθε URL συνημμένου του WordPress - στον επεξεργαστή μπλοκ, στις επιλεγμένες εικόνες, στις γκαλερί, στο REST API - οδηγεί στο αρχείο που φιλοξενείται στο YourImageShare. Χωρίς shortcode, χωρίς αλλαγή στη ροή εργασίας σας.

  • Μαζική μεταφορά μιας υπάρχουσας Βιβλιοθήκης πολυμέσων στο παρασκήνιο (ή με wp yis offload --all), όχι μόνο των νέων ανεβασμάτων
  • Οι εικόνες και τα βίντεο που έχουν ήδη μπει σε αναρτήσεις συνεχίζουν να λειτουργούν αφού αφαιρεθούν τα τοπικά αρχεία τους
  • Οι μικρογραφίες και το srcset χρησιμοποιούν τη μικρογραφία μας των 280px, ώστε οι μικρές θέσεις εικόνων να μην φορτώνουν αρχεία πλήρους μεγέθους
  • Αρχεία έως 200MB, που στέλνονται σε κομμάτια ώστε τα μεγάλα βίντεο να μην επιβαρύνουν έναν κοινόχρηστο διακομιστή
  • Επαναφορά οποιουδήποτε αρχείου που έχει μεταφερθεί πίσω στην τοπική αποθήκευση ανά πάσα στιγμή
  • Μια στήλη στη Βιβλιοθήκη πολυμέσων δείχνει τι έχει μεταφερθεί και τι είναι ακόμη τοπικό
  • Τα αρχεία που μεταφέρονται αποθηκεύονται ως private: φορτώνουν όπου τα χρησιμοποιεί ο ιστότοπός σας, αλλά δεν αποκτούν δική τους σελίδα στο YourImageShare

Χρησιμοποιεί το κλειδί μόνο για ανέβασμα, όχι το κλειδί API σας. Το προαιρετικό πλήρες κλειδί API χρειάζεται μόνο αν θέλετε τα αρχεία που μεταφέρθηκαν να διαγράφονται από το YourImageShare όταν τα διαγράφετε στο WordPress.

Λήψη από το WordPress.org Λήψη του ZIP

Στο WordPress: Plugins > Add New, αναζητήστε το YourImageShare Media Offload και μετά πατήστε Install και Activate.

Από το ιστολόγιο

Έτοιμοι να το δοκιμάσετε;

Αποκτήστε το κλειδί API σας →