> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Post API Overview

> पोस्ट schedule करें, auto hashtag, auto-post schedule, और भी बहुत कुछ

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Post endpoint आपको social networks: Bluesky, Facebook, Google Business Profile, Instagram, LinkedIn, Pinterest, Reddit, Snapchat, Telegram, TikTok, X/Twitter, और YouTube पर पोस्ट प्रकाशित करने की अनुमति देता है।
अपने पोस्ट को अनुकूलित करने के लिए कई विकल्प हैं, जैसे कि पोस्ट scheduling, auto hashtag जोड़ना, auto-post schedule, और भी बहुत कुछ।
अक्सर इसका उपयोग agencies द्वारा किया जाता है जब एक पोस्ट प्रकाशित होने से पहले कई हितधारकों को इसे अनुमोदित करने की आवश्यकता होती है।

[/post POST endpoint](/apis/post/post) के साथ पोस्ट प्रकाशित करना शुरू करें।

## Approval Workflow

यदि आपके प्रकाशन workflow को एक पोस्ट भेजने से पहले approval की आवश्यकता है, तो `requiresApproval` फ़ील्ड को `true` पर सेट करें।
यह पोस्ट को तब तक रोकने के बराबर है जब तक `approved` parameter को `true` पर सेट नहीं किया जाता।

### Approval Workflow उदाहरण

पोस्ट की स्थिति "awaiting approval" रहेगी जब तक कि [/post PATCH endpoint](/apis/post/update-post) के माध्यम से `approved` parameter को `true` पर सेट नहीं किया जाता।

<Steps>
  <Step title="parameters के साथ प्रकाशित करें">
    `requiresApproval` फ़ील्ड को `true` के रूप में [/post endpoint](/apis/post/post) का उपयोग करके अपना पोस्ट प्रकाशित करें।
    आप `scheduleDate` जैसे मानक parameters भी शामिल कर सकते हैं।
  </Step>

  <Step title="स्थिति awaiting approval है">
    पोस्ट "awaiting approval" स्थिति में होगा और approval मिलने तक रोका जाएगा।
  </Step>

  <Step title="पोस्ट को अनुमोदित करें">
    `approved` फ़ील्ड को `true` के रूप में सेट करते हुए [/post PATCH operation](/apis/post/update-post)
    के साथ पोस्ट को अपडेट करें। पोस्ट अब scheduled समय पर भेजा जाएगा।
  </Step>

  <Step title="notes का उपयोग करें">
    वैकल्पिक: संदर्भ के लिए पोस्ट पर `notes` सेट करें, जैसे कि पोस्ट को कौन अनुमोदित करने की आवश्यकता है।
  </Step>
</Steps>

```json Approval के साथ Post प्रकाशित करें theme={"system"}
{
  "requiresApproval": true,
  "notes": "need approval by John Smith" // optional
}
```

<Warning>
  यदि `scheduleDate` शामिल है और तारीख अतीत में है, तो पोस्ट approval मिलते ही तुरंत प्रकाशित हो जाएगा।
</Warning>

### Approval Workflow वीडियो

Approval workflow के उदाहरण के लिए कृपया नीचे दिया गया वीडियो देखें।

<div class="video-container">
  <iframe width="380" height="200" src="https://www.youtube.com/embed/DtmTGgqQ-Mo" title="Social Approval Workflow API" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" />
</div>

## Auto Hashtags

अपने पोस्ट में सबसे प्रासंगिक hashtags जोड़ें।

`autoHashtag` एक object या Boolean है - नीचे देखें - निम्नलिखित parameters के साथ:

<ul class="custom-bullets">
  <li>`max`: (वैकल्पिक) जोड़े जाने वाले hashtags का Integer, range 1-10। Default 2।</li>

  <li>
    `position`: (वैकल्पिक) String "auto" या "end"। Auto पोस्ट के भीतर या अंत में hashtags जोड़ता है।
    "end" hashtags को केवल अंत में जोड़ता है।
  </li>
</ul>

*एक paid plan आवश्यक है।*

```json theme={"system"}
{
  "hashtags": {
    "max": 3, // optional: Integer range 1-10
    "position": "auto" // optional: String "auto" or "end"
  }
}
```

यदि आप उपरोक्त विकल्पों में से कोई भी नहीं भेजना चाहते हैं, तो एक object के बजाय Boolean value `true` पास करें।

```json theme={"system"}
{
  "autoHashtag": true
}
```

## Auto Repost

आपकी सामग्री को नियमित अंतराल पर कई बार स्वचालित रूप से repost करता है, evergreen सामग्री बनाता है जो आपके audience के लिए ताज़ा और दिखाई देने वाली रहती है।
एक paid plan आवश्यक है।

Parameters:

* `repeat`: (आवश्यक) सामग्री को repost करने की संख्या। 1 और 10 के बीच होनी चाहिए।
* `days`: (आवश्यक) प्रत्येक repost के बीच दिनों की संख्या। कम से कम 2 दिन होने चाहिए।
* `startDate`: (वैकल्पिक) repost schedule कब शुरू करें, ISO-8601 UTC format में। यदि निर्दिष्ट नहीं किया गया, तो पहला पोस्ट तुरंत प्रकाशित किया जाएगा। आपको top-level `scheduleDate` parameter के बजाय `startDate` parameter का उपयोग करना चाहिए।

```json Auto Repost theme={"system"}
{
  "repeat": 2, // min 2, max 10
  "days": 5, // min 2
  "startDate": "2021-07-08T12:30:00Z"
}
```

response में सभी भविष्य के scheduled reposts और प्रत्येक repost के लिए एक `autoRepostId` शामिल होगा।

```json Auto Repost Response theme={"system"}
{
  "status": "scheduled",
  "scheduleDate": "2025-06-13T12:30:00.000Z",
  "id": "eIT96IYEodNuzU4oMmwG",
  "refId": "9abf1426d6ce9122ef11c72bd",
  "autoRepostId": "F5wdoaOAAGtDQVciExSxL",
  "post": "The most important things are the hardest to say - Stephen King"
}
```

Auto repost बनाते समय, उस posts की श्रृंखला को track करने के लिए एक ID `autoRepostId` सौंपा जाता है।

आप `autoRepostId` के साथ [History call](/apis/history/get-history) के साथ किसी पोस्ट के सभी auto reposts प्राप्त कर सकते हैं।

यदि आपको repost हटाने की आवश्यकता है, तो आप पोस्ट ID के साथ [DELETE call](/apis/post/delete-post) का उपयोग कर सकते हैं।

<Tip>
  महत्वपूर्ण: auto-repost का उपयोग करते समय, account restrictions से बचने के लिए प्रत्येक social network के posting frequency दिशानिर्देशों का पालन सुनिश्चित करें।

  नोट: `autoRepost` feature `scheduleDate` के साथ एक साथ उपयोग नहीं किया जा सकता। यदि आप दोनों parameters शामिल करते हैं, तो `scheduleDate` को प्राथमिकता दी जाएगी और `autoRepost` को अनदेखा कर दिया जाएगा। इसके बजाय कृपया `startDate` parameter का उपयोग करें।
</Tip>

## First Comment

पोस्ट प्रकाशित होने के बाद, media के साथ स्वचालित रूप से पहला comment जोड़ें। TikTok के लिए comment को तब तक स्थगित किया जाता है जब तक video processing पूरी नहीं हो जाती ([First Comment Processing Time](#first-comment-processing-time) देखें)।
अपने स्वयं के social media पोस्ट पर पहला comment पोस्ट करना engagement को शुरू करने और आगे की चर्चा के लिए tone सेट करने में मदद कर सकता है।

```json theme={"system"}
{
  "firstComment": {
    "comment": "My first comment", // required
    "mediaUrls": ["https://..."] // Facebook, LinkedIn, and X/Twitter only
  }
}
```

## First Comment Processing Time

अधिकांश social networks के लिए, API response में देरी होती है क्योंकि हमारे system को (1) मूल पोस्ट के पूरी तरह प्रकाशित होने की प्रतीक्षा करनी चाहिए, फिर (2) उस प्रकाशित पोस्ट में comment जोड़ना चाहिए। यह अनुक्रमिक प्रक्रिया लगभग 20 सेकंड की देरी जोड़ती है।

**TikTok को अलग तरह से handle किया जाता है।** TikTok videos को asynchronously process करता है, इसलिए पोस्ट `id` तब तक `"pending"` रहती है जब तक TikTok का `post.publish.publicly_available` webhook वास्तविक video id को resolve नहीं करता ([TikTok Processing](/apis/post/social-networks/tiktok#tiktok-processing) देखें)। इसलिए `/post` response TikTok first comment को `status: "pending"` के साथ तुरंत लौटाता है, और TikTok के processing पूरा करने और [`tikTokPublished` Scheduled Action webhook](/apis/webhooks/actions#scheduled-action) के fire होने पर comment स्वचालित रूप से पोस्ट किया जाता है। TikTok processing time की गारंटी नहीं देता, इसलिए कोई निश्चित देरी नहीं है।

**महत्वपूर्ण TikTok नोट**: TikTok पर first comments के सही ढंग से काम करने के लिए, पोस्ट का `visibility` parameter `public` पर सेट होना चाहिए। गैर-public video को कभी भी `publicly_available` webhook प्राप्त नहीं होता, इसलिए इसका first comment पोस्ट नहीं किया जा सकता; उस स्थिति में Ayrshare comment error लौटाता है बजाय इसे pending छोड़ने के।

## Idempotent Posts

[Idempotency ](https://en.wikipedia.org/wiki/Idempotence) एक वैकल्पिक feature है जो सुनिश्चित करता है कि एक request केवल एक बार execute किया जाए, भले ही इसे गलती से कई बार भेजा गया हो।
API का उपयोग करके सामग्री पोस्ट करते समय, आप operation को विशिष्ट रूप से पहचानने के लिए request body में एक वैकल्पिक `idempotencyKey` parameter शामिल कर सकते हैं। यह आपको duplicate posts बनाने के जोखिम के बिना पोस्ट request को सुरक्षित रूप से पुनः प्रयास करने की अनुमति देता है।

Idempotency का उपयोग करने के लिए, `/post` POST request के JSON body में `idempotencyKey` parameter जोड़ें:

```json Idempotency Key theme={"system"}
{
  "idempotencyKey": "Unique Key"
}
```

`idempotencyKey` का मान प्रति User Profile एक अद्वितीय string होना चाहिए। यदि किसी दिए गए User Profile के लिए समान `idempotencyKey` के साथ एक request किया जाता है, तो पोस्ट की स्थिति (success, error, pending, या deleted) की परवाह किए बिना, एक error लौटाया जाएगा, जो दर्शाता है कि एक duplicate key पाया गया था।

<Warning>
  API को पहले POST request को स्वीकार करना और process करना होगा ताकि idempotency key store की जा सके और duplicates की जाँच की जा सके।
  हालाँकि, यदि समान `idempotencyKey` के साथ कई POST requests एक साथ भेजे जाते हैं या समान posting time के लिए scheduled हैं,
  तो API duplicate keys का पता नहीं लगा सकता है। ऐसा इसलिए है क्योंकि API इन concurrent या एक साथ scheduled requests को
  parallel में process करता है, इससे पहले कि उसे किसी एकल request से idempotency key register करने का मौका मिले।
  परिणामस्वरूप, इन scenarios में simultaneous submission या scheduled posts के execution में duplicate
  idempotent keys पकड़े जाने की कोई गारंटी नहीं है।
</Warning>

Idempotency का उपयोग failed requests को पुनः प्रयास करने या network issues को handle करते समय duplicate posts के आकस्मिक निर्माण को रोकने में मदद करता है। हालाँकि, संभावित failures को शालीनता से handle करने के लिए अपने application में उपयुक्त error handling और retry mechanisms को लागू करने की अभी भी सलाह दी जाती है।

## Image और Video आवश्यकताएँ

Images और videos पोस्ट करने की प्रत्येक network के लिए अलग-अलग आवश्यकताएँ हैं, लेकिन चिंता न करें। हमारा system भेजने से पहले आपके पोस्ट को verify करता है, इसलिए यदि कुछ गलत है तो आपको एक error response मिलेगी। Image और video दिशानिर्देशों पर विवरण के लिए नीचे दिया गया link देखें।

<Card title="Image & Video Guidelines" icon="link" href="/media-guidelines" horizontal />

### मान्य URL

सुनिश्चित करें कि आपके media URL(s) मान्य हैं और media तक सीधे पहुँच रहे हैं।
पहला परीक्षण URL को browser में आज़माना है।
यदि image लोड नहीं होगी या browser में download नहीं की जा सकती, तो यह संभवतः विफल हो जाएगी।
उदाहरण के लिए, एक DropBox URL जो DropBox web app खोलता है काम नहीं करेगा।

<Tip>
  यदि आपके पास एक [Google Drive Share
  URL](https://www.ayrshare.com/how-to-get-direct-download-urls-from-google-drive/) या [Dropbox
  Share URL](https://www.ayrshare.com/blog/how-to-get-direct-download-urls-from-dropbox/) है, तो आप पोस्ट या comment प्रकाशित करते समय बस `mediaUrls` parameter में URL का उपयोग कर सकते हैं।
  Ayrshare स्वचालित रूप से share URL को download link में परिवर्तित कर देगा।
</Tip>

हम `HEAD` request करके media URL को verify करते हैं।
कृपया सुनिश्चित करें कि hosting provider `HEAD` request को block नहीं कर रहा है अन्यथा पोस्ट 403 error के साथ विफल हो जाएगा।

उदाहरण के लिए, यहाँ media URL के लिए एक `HEAD` request है:

```javascript Fetch HEAD Request theme={"system"}
const run = async () => {
  const url = "https://img.ayrshare.com/012/gb.jpg";
  return await fetch(url, {
    method: "HEAD"
  })
    .then((res) => {
      if (res.ok) {
        return console.log("Success:", res.status, res.statusText);
      } else {
        return console.error("Error:", res.status, res.statusText, res);
      }
    })
    .catch((error) => {
      return console.error("Error Catch:", error);
    });
};

run();
```

#### स्वचालित Media सुरक्षा

Ayrshare में built-in media protection शामिल है जो posting के दौरान कुछ media delivery issues का पता लगा सकती है और उनका समाधान कर सकती है। जब कोई पोस्ट सफल होता है लेकिन content issue का पता चला और उसका समाधान हो गया, तो `postIds[]` में प्रत्येक प्रभावित entry में एक वैकल्पिक `contentIssues` object शामिल होता है ताकि आप अंतर्निहित issue की पहचान कर सकें और उसे ठीक कर सकें:

```json theme={"system"}
{
    "postIds": [
        {
            "status": "success",
            "platform": "instagram",
            "id": "17878176260289172",
            "postUrl": "https://www.instagram.com/p/CP1dI9Hp_WO/",
            "contentIssues": {
                "originMediaHostFailed": true,
                "details": ["Media URL could not be retrieved by the social network. Successfully posted using Ayrshare automated media protection."]
            }
        }
    ]
}
```

यदि आप अपनी responses में `originMediaHostFailed` देखते हैं, तो अपनी media hosting configuration की समीक्षा करें। सामान्य कारणों और समाधानों के लिए [Meta Media Crawler Blocked](/help-center/technical-support/meta_media_crawler_blocked) देखें।

#### रिक्त स्थान और विशेष वर्ण

हम आपके media URLs में निम्नलिखित से बचने की सलाह देते हैं:

<ul class="custom-bullets">
  <li>URL में रिक्त स्थान।</li>
  <li>URL में URL encoded रिक्त स्थान।</li>
  <li>URL में विशेष वर्ण, भले ही वे url encoded हों, जैसे accent marks é।</li>
</ul>

उदाहरण के लिए:

```bash theme={"system"}
https://img.ayrshare.com/012/test .webp
```

यह URL रिक्त स्थान `test .webp` के कारण विफल होता है। हम URL में URL encoded रिक्त स्थान, जैसे `%20` का उपयोग करने की भी अनुशंसा नहीं करते हैं - यह कुछ social networks के साथ भी समस्याएँ पैदा कर सकता है।

और यह Unsplash image:

```bash theme={"system"}
https://unsplash.com/photos/a-house-in-the-middle-of-a-field-with-trees-in-the-background-znbmh2-cIj0
```

यह Unsplash image विफल होती है क्योंकि यह सीधे image तक पहुँच नहीं रही है, बल्कि एक web app दिखा रही है।

#### फ़ाइल नाम और URLs को Sanitize करें

आप अपने फ़ाइल नामों को `/[^a-z0-9\/\.]/gi` जैसे regular expression के साथ sanitize कर सकते हैं।

```javascript theme={"system"}
const sanitizeFileName = (url) => url.replace(/[^a-z0-9\/\.]/gi, "_");
sanitizeFileName("tést .webp"); // t_st_.webp
```

या एक URL sanitize करें

```javascript theme={"system"}
const sanitizeUrl = (url) => {
  const [protocol, rest] = url.split("://");
  const [domain, ...path] = rest.split("/");
  const sanitizedPath = path.join("/").replace(/[^a-z0-9\/\.]/gi, "_");
  return `${protocol}://${domain}/${sanitizedPath}`;
};

// Output: https://img.ayrshare.com/012/t_st_.webp
sanitizeUrl("https://img.ayrshare.com/012/tést .webp");
```

### अतिरिक्त जानकारी

<Info>
  <ul class="custom-bullets">
    <li>
      यदि आप self hosting कर रहे हैं, तो सुनिश्चित करें कि URL बाहरी रूप से accessed किया जा सकता है और
      विशेष अनुमतियों की आवश्यकता नहीं है।
    </li>

    <li>
      अज्ञात extensions वाले videos, अक्सर signed URLs जैसे AWS S3 को handle करने के तरीके के लिए नीचे देखें।
    </li>

    <li>
      यदि आप signed URL का उपयोग कर रहे हैं, जैसे S3, हम URL expiration को कम से कम 7 दिनों पर सेट करने की अनुशंसा करते हैं।
      यह हमारी टीम को पोस्ट प्रकाशित करने पर आपके किसी भी प्रश्न में सहायता करने की अनुमति देता है।
    </li>

    <li>
      हमारे [verify media tools](/apis/media/verify-media-url) के साथ परीक्षण करें कि media URL मौजूद है या नहीं।
    </li>
  </ul>
</Info>

### Download गति

सुनिश्चित करें कि आपकी media hosting में तेज़ connection है, विशेष रूप से download speed। आप [pingdom](https://tools.pingdom.com/) पर अपने media hosting प्रदर्शन का परीक्षण कर सकते हैं। हम कम से कम *B rating* की अनुशंसा करते हैं।

### Video Extension

यदि आपका URL `mp4` जैसे ज्ञात video extension में समाप्त नहीं होता है, तो आप यह निर्दिष्ट करने के लिए पोस्ट में `isVideo: true` फ़ील्ड का उपयोग कर सकते हैं कि `mediaUrl` एक video है। Ayrshare फ़ाइल प्रकार निर्धारित करने का प्रयास करेगा, जैसे `MOV`। हालाँकि, हम आपकी video फ़ाइल को स्पष्ट रूप से `mp4` जैसे ज्ञात extension के साथ समाप्त करने की अनुशंसा करते हैं, क्योंकि social networks के साथ इसकी उच्च सफलता दर है।

### केवल Image या Video

कुछ social networks पोस्ट text के बिना media भेजने का समर्थन करते हैं। यदि आप पोस्ट text शामिल नहीं करना चाहते हैं, तो एक खाली string भेजें: `post: ""`

निम्नलिखित social networks कोई पोस्ट/blank text का समर्थन करते हैं: Facebook, Instagram, LinkedIn, Threads, TikTok, और X/Twitter।

### Images और Videos का परीक्षण

अपने परीक्षण को गति देने के लिए [random text और random image या video generate करने](/quickstart#sending-test-posts-with-a-random-quote-image-or-video) पर विचार करें। अपने प्रत्येक test posts के लिए कुछ अलग सोचने की कोशिश करना बंद करें!

## Line Breaks

<Info>
  यदि आप एक पोस्ट में line breaks (नई lines) चाहते हैं, तो अदृश्य line break `\u2063\n` का उपयोग करें। उदाहरण के लिए, `This is a new\u2063\nline.`

  हम यह देखने के लिए Postman में परीक्षण करने की भी अनुशंसा करते हैं कि नई line break आपकी पसंद की भाषा में कैसे translated होती है। उदाहरण के लिए, PHP अक्सर केवल `\n` का उपयोग करता है

  कुछ social networks वर्तमान में पोस्ट text में line breaks का समर्थन नहीं करते हैं।
</Info>

## Multi-Platform Posts और Media

यह feature आपको एक ही API call के भीतर विभिन्न social networks के लिए अपनी पोस्ट सामग्री और media को अनुकूलित करने की अनुमति देता है। आप `post` और `mediaUrls` फ़ील्ड के लिए objects का उपयोग करके प्रत्येक platform के लिए अद्वितीय text और/या images निर्दिष्ट कर सकते हैं।

1. `post` और/या `mediaUrls` फ़ील्ड के लिए एक object structure का उपयोग करें।
2. platform नामों को keys के रूप में उपयोग करके platform-विशिष्ट सामग्री निर्दिष्ट करें।
3. platforms पर उपयोग की जाने वाली सामग्री के लिए एक `default` key शामिल करें जो स्पष्ट रूप से निर्दिष्ट नहीं है।

```json theme={"system"}
{
  "post": {
    "instagram": "Great IG pic!",
    "facebook": "Great FB pic!",
    "default": "Great default pic!"
  },
  "platforms": ["instagram", "facebook", "linkedin"],
  "mediaUrls": {
    "instagram": "https://img.ayrshare.com/012/gb.jpg",
    "linkedin": "https://img.ayrshare.com/012/gb.jpg",
    "default": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

उपरोक्त उदाहरण में:

<ul class="custom-bullets">
  <li>Instagram अपने विशिष्ट text और image URL का उपयोग करेगा।</li>
  <li>Facebook अपने विशिष्ट text और default image URL का उपयोग करेगा।</li>
  <li>LinkedIn default text और अपने विशिष्ट image URL का उपयोग करेगा।</li>
</ul>

<Info>
  यदि आपको विभिन्न platforms पर कई images पोस्ट करने की आवश्यकता है, तो इस multi-platform संरचना का उपयोग करने के बजाय प्रत्येक platform के लिए अलग-अलग posts बनाएँ।
</Info>

## Profile Keys

Body parameter के रूप में उपयोगकर्ताओं की Profile Keys प्रदान करके उपयोगकर्ता की ओर से पोस्ट करें और response में अतिरिक्त data। *Business या Enterprise Plan आवश्यक।*

<Card title="Profiles" icon="link" href="/apis/profiles/overview" horizontal />

## Rich Text Posts

आप rich text जोड़ सकते हैं जैसे "𝓗𝓮𝓵𝓵𝓸, how about a little 𝗯𝗼𝗹𝗱 𝘁𝗲𝘅𝘁 and 𝘪𝘵𝘢𝘭𝘪𝘤𝘴 𝘵𝘦𝘹𝘵 and an x₂?"। आप Twitter, Facebook, LinkedIn, Telegram, और Instagram जैसे networks पर rich text का उपयोग कर सकते हैं।
यदि Reddit पर पोस्ट कर रहे हैं, तो कृपया [Reddit-flavored Markdown formatting](https://www.reddit.com/wiki/markdown#wiki_new_reddit-flavored_markdown) का उपयोग करें।

HTML elements का उपयोग rich text के प्रकार को निर्दिष्ट करने के लिए किया जाता है, जिसे unicode में translated किया जाता है। उदाहरण के लिए:

```json theme={"system"}
{
    "post": "<var>Hello</var>, how about a little <b>bold text</b> and <i>italics text</i> and an x<sub>2</sub>?"
    "platforms": ["twitter"]
}
```

### HTML Elements

| HTML                                          | उदाहरण                            |
| --------------------------------------------- | --------------------------------- |
| \<b>Nice One!\</b>                            | **Nice One!**                     |
| \<strong>Hello, world!\</strong>              | **Hello, world!**                 |
| \<em>World\</em>                              | *World*                           |
| normal \<i>italics \<b>bold italics\</b>\</i> | normal *italics **bold italics*** |
| \`\<b>Hello\</b>, world!\`                    | `Hello, world!`                   |
| \`\<b>Hello\</b>, world!\`                    | **`Hello`**`, world!`             |
| \<samp>123\</samp>                            | 𝟷𝟸𝟹                            |
| \<var>Hello\</var>                            | 𝓗𝓮𝓵𝓵𝓸                        |
| x\<sub>2\</sub>                               | x₂                                |
| x\<sup>2\</sup>                               | x²                                |

### CSS Codes

| Code     | उदाहरण                     | Result                   |
| -------- | -------------------------- | ------------------------ |
| \u00B0   | It's 25\u00B0C today!      | It's 25°C today!         |
| \u2063\n | This is a new\u2063\nline. | This is a new<br />line. |

## Schedule Posts

### Scheduled Posts बनाएँ

आप Zulu/UTC में datetime के साथ `scheduleDate` parameter निर्दिष्ट करके भविष्य के पोस्ट schedule कर सकते हैं। Zulu Time, जिसे Coordinated Universal Time (UTC) के रूप में भी जाना जाता है, समय के लिए विश्व मानक है।

उदाहरण के लिए, format `YYYY-MM-DDThh:mm:ssZ` का उपयोग करें और `2026-07-08T12:30:00Z` के रूप में भेजें।
अधिक उदाहरणों के लिए कृपया [utctime](https://www.utctime.net/) देखें।

```json {5} theme={"system"}
{
  "post": "Hello, world!",
  "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  "platforms": ["facebook", "instagram"],
  "scheduleDate": "2023-07-08T12:30:00Z"
}
```

अपने local time को Zulu/UTC time में परिवर्तित करने के तरीके पर कृपया [https://www.utctime.net/](https://www.utctime.net/) देखें।

यदि scheduled datetime अतीत में है, तो पोस्ट तुरंत भेज दिया जाएगा।

<Info>
  यदि scheduled post के साथ `mediaUrl` शामिल है, तो media को scheduled publication समय पर उपलब्ध होना चाहिए।
  उदाहरण के लिए, यदि पोस्ट 5 मार्च 2026 को प्रकाशित होने के लिए scheduled है, तो media 5 मार्च 2026 को उपलब्ध होना चाहिए।
</Info>

<Tip>
  Scheduled बनाम Immediate Posts के लिए Error Handling

  Immediate और scheduled posts के बीच validation errors कैसे handle किए जाते हैं, इसमें एक महत्वपूर्ण अंतर है:

  * Immediate Posts
    * तुरंत प्रकाशित करते समय (scheduleDate के बिना), यदि एक platform validation checks में विफल रहता है, तो अन्य platforms process होते रहेंगे। उदाहरण के लिए, यदि कोई पोस्ट Twitter की character limit से अधिक है लेकिन Facebook और Instagram के लिए मान्य है, तो पोस्ट Twitter पर विफल हो जाएगा लेकिन Facebook और Instagram पर अभी भी प्रकाशित हो जाएगा।

  * Scheduled Posts
    * भविष्य के प्रकाशन के लिए पोस्ट scheduling करते समय (scheduleDate के साथ), पोस्ट के scheduled होने से पहले सभी platforms को प्रारंभिक validation checks पास करने होंगे। यदि कोई platform इन pre-validation checks में विफल रहता है, तो पूरा scheduling operation अस्वीकार कर दिया जाएगा और तुरंत एक error लौटाया जाएगा।
    * हालाँकि, कुछ platform-विशिष्ट errors वास्तविक posting time तक पता नहीं चल सकते हैं। इन मामलों में, scheduled post सभी platforms पर प्रकाशित करने का प्रयास करेगा, और अन्य platforms को प्रभावित किए बिना individual platform failures को final results में report किया जाएगा।
</Tip>

### Scheduled Post की स्थिति जाँचें

आप कई तरीकों से scheduled post की स्थिति जाँच सकते हैं:

<ul class="custom-bullets">
  <li>
    scheduled post की स्थिति स्वचालित रूप से प्राप्त करने के लिए [Webhook Scheduled Action](/apis/webhooks/actions#scheduled-action) सेट करें।
    यह Business plan के लिए उपलब्ध है और अनुशंसित पद्धति है।
  </li>

  <li>
    पोस्ट ID के साथ [GET call](/apis/post/get-post) के साथ scheduled post की स्थिति प्राप्त करें।
  </li>

  <li>
    Ayrshare Dashboard में स्थिति जाँचें। पहले उस User Profile पर switch करें जिसके तहत पोस्ट प्रकाशित हुआ था,
    फिर "Posts" पृष्ठ पर जाएँ और Ayrshare Post ID का उपयोग करके खोजें।
  </li>
</ul>

### Scheduled Posts को Pause करें

आप scheduled posts को pause कर सकते हैं जो अभी तक प्रकाशित नहीं हुए हैं।
scheduled post को pause करने से यह प्रकाशित होने से रोका जाएगा जब तक कि पोस्ट को unpaused नहीं किया जाता।

scheduled post को pause या unpause करने के लिए [PATCH call](/apis/post/update-post) का उपयोग करें।
कृपया ध्यान दें कि यदि पोस्ट unpaused है और `scheduleDate` अतीत में है तो पोस्ट तुरंत प्रकाशित हो जाएगा। unpausing से पहले `scheduleDate` को update करने पर विचार करें।

## Links को Shorten करें

एक पोस्ट में links को Ayrshare [link shortner](/apis/links/overview) का उपयोग करके shortened किया जा सकता है। आप पोस्ट भेजते समय `shortenLinks` parameter के साथ स्वचालित link shortening चालू कर सकते हैं। [Max Pack आवश्यक](/additional/maxpack)।

```json {4} theme={"system"}
{
  "post": "Hello, world with a link https://www.ayrshare.com",
  "platforms": ["linkedin"],
  "shortenLinks": true
}
```

## Unsplash Images

`unsplash` body parameter के लिए निम्नलिखित फ़ील्ड उपलब्ध हैं:

<ul class="custom-bullets">
  <li>Random Image: `random` एक random Unsplash image लौटाता है।</li>

  <li>
    Search Based Image: value String search term ; उदा. `money` money के आधार पर एक random image चुनेगा।
  </li>

  <li>
    Image IDs: value Ids का Array; उदा. \["HubtZZb2fCM"] image
    [https://unsplash.com/photos/HubtZZb2fCM](https://unsplash.com/photos/HubtZZb2fCM) का
  </li>
</ul>

```json {4,5,6} theme={"system"}
{
  "post": "Hello, world!",
  "platforms": ["instagram"],
  "unsplash": "random",
  "unsplash": "search term", // unsplash: "money"
  "unsplash": ["unsplash image ID"] // unsplash: ["HubtZZb2fCM"]
}
```

<Info>
  यदि `mediaUrls` में पोस्ट करने के लिए Unsplash URL copy कर रहे हैं, तो कृपया image address copy करना सुनिश्चित करें और
  केवल URL नहीं। अधिक जानकारी के लिए कृपया यह [example](/help-center/technical-support/get_an_unsplash_image_url) देखें।
</Info>
