Skip to content

API விவரக்குறிப்பு

முழுமையான REST endpoint குறிப்பு. பயிற்சிகள் மற்றும் எடுத்துக்காட்டுகளுக்கு, API வழிகாட்டியைப் பார்க்கவும்.

ஒரு திட்ட member வலை UI-இல் செய்யக்கூடிய அனைத்தும் இங்கே கிடைக்கின்றன — SPA இந்த அதே API-ஐ நுகர்கிறது. manager பாத்திரம் தேவைப்படும் செயல்பாடுகள் (manager) என குறிக்கப்பட்டுள்ளன; மற்ற அனைத்திற்கும் திட்ட உறுப்பினர் மட்டுமே தேவை (அல்லது, (viewer) என குறிக்கப்பட்ட reads-க்கு, எந்த அணுகல் மட்டமும்). கீழே உள்ள அட்டவணைகள் சர்வர் mount செய்யும் ஒவ்வொரு route குழுவையும் பெயரிடுகின்றன; ஒரே வரியில் சுருக்கப்பட்டவை நேரடி openapi.json-இல் முழுமையாக விவரிக்கப்பட்டுள்ளன.

https://eastagiletracker.com/api/v1

https://api.eastagiletracker.com/api/v1 ஒத்த API-ஐ வழங்குகிறது. multipart-ஐ ஏற்றுக்கொள்ளும் சில file-upload endpoints தவிர, அனைத்து requests மற்றும் responses-ம் JSON.

இரண்டு குழுக்கள் ஒரு மட்டம் மேலே, /api/v1-க்குப் பதிலாக /api-இன் கீழ் அமர்ந்துள்ளன: அங்கீகார மேற்பரப்பு (/api/auth/*) மற்றும் பொதுப் படிவங்கள் (/api/contact, /api/feedback). அவற்றின் /api/v1/… வடிவங்கள் 404-ஐத் திருப்பித் தருகின்றன.

ஒவ்வொரு அங்கீகரிக்கப்பட்ட request-ம் இவற்றில் ஒன்றின் வழியாக ஒரு சான்றை அனுப்புகிறது:

  • X-TrackerToken: <key>
  • Authorization: Bearer <key>

User keys ea_user_ உடனும், agent keys ea_agent_ உடனும், MCP access tokens ea_mcp_ உடனும் தொடங்குகின்றன. API வழிகாட்டி → மூன்று வகையான சான்றுகள் பார்க்கவும்.

அங்கீகரிக்கப்படாத endpoints: /openapi.json, /docs, /api/auth/* endpoints, மற்றும் reference-data lookups (/story_types, /story_states, /effort_scales, /priority_scales). /meta அங்கீகரிக்கப்பட்டது — எந்த செல்லுபடியாகும் விசையும் வேலை செய்கிறது, ஆனால் அது திட்டம்-வரம்பிடப்படாதது (ஒரு திட்டம்-பிணைக்கப்பட்ட agent key உம் அதை அடைகிறது).

நான்கு மட்டங்கள் திட்டம்-வரம்பிடப்பட்ட endpoints-ஐ வாயிலிடுகின்றன:

மட்டம்யார் கடக்கிறார்கள்வழக்கமான செயல்பாடுகள்
public viewerபொதுப் பார்வை கொண்ட ஒரு திட்டத்தில், எவரும்போர்டின் reads: ஸ்டோரிகள், மறுசுழற்சிகள், தேடல், ஸ்டோரி மற்றும் epic செயல்பாடு (செயல்படுத்துபவர் விவரங்கள் மறைக்கப்பட்டு)
viewerviewer, member, managerreads (ஸ்டோரிகளை பட்டியலிடு/பெறு, தேடல், அளவீடுகள், ஏற்றுமதி வடிவப் பட்டியல்)
membermember, managerஅனைத்து work-item எழுத்துகள் (stories, tasks, comments, …), நிகழ்வு ஓடை
managermanager மட்டுமேதிட்ட அமைப்புகள், உறுப்பினர் மேலாண்மை, agent keys, delete, import, ஏற்றுமதிப் பதிவிறக்கங்கள், backups, audit log

ஏஜெண்ட்கள் உறுப்பினர்களின் அதே பாத்திரங்களை வைத்திருக்கின்றன — viewer, member, அல்லது manager — விசையை உருவாக்கிய உறுப்பினரின் பாத்திரத்தில் வரம்பிடப்பட்டு. ஒரு non-member தனிப்பட்ட திட்டப் பாதைகளில் 404 unfound_resource (403 அல்ல) பெறுகிறார், எனவே project IDs எண்ணிக்கையிடக்கூடியவை அல்ல.

சுய-விவரிக்கும் endpoints

Section titled “சுய-விவரிக்கும் endpoints”
MethodPathவிளக்கம்
GET/openapi.jsonநேரடி OpenAPI 3 spec, request bodies உட்பட. அங்கீகரிக்கப்படாதது.
GET/docsSwagger UI. அங்கீகரிக்கப்படாதது.
GET/metaCaller அடையாளம் (auth.kind/key_id/agent_id/project_id) + ஸ்டோரி-வகை transition graph. அங்கீகரிக்கப்பட்டது (எந்த செல்லுபடியாகும் விசையும்; திட்டம்-வரம்பிடப்படாதது). இதை முதலில் அழைக்கவும்.
GET/api/health · /api/configஉயிர்ப்புச் சோதனை, மற்றும் நிறுவலின் பொது உள்ளமைவு (ஒற்றை-நிறுவன முறை, இயக்கத்தில் உள்ள விருப்ப அம்சங்கள், instance பெயர்). அங்கீகரிக்கப்படாதது, /v1-க்கு வெளியே.

Auth (/api/auth/*, /v1-க்கு வெளியே)

Section titled “Auth (/api/auth/*, /v1-க்கு வெளியே)”

அமர்வு endpoints, குறிப்பிடப்படாவிட்டால் அங்கீகரிக்கப்படாதவை. SPA இவற்றை இயக்குகிறது; ஸ்கிரிப்ட்கள் பொதுவாக அதற்குப் பதிலாக ஒரு API விசையைப் பயன்படுத்துகின்றன.

MethodPathவிளக்கம்
POST/auth/registerஒரு புதிய கணக்கைப் பதிவு செய்யவும் — reCAPTCHA-பாதுகாக்கப்பட்டது; பின்னர் கணக்கு SMS சவாலைக் கடக்கிறது
POST/auth/sms/challenge · /auth/sms/status · /auth/sms/bypassபதிவு SMS குறியீட்டை அனுப்ப / சரிபார்க்க (bypass இயக்குநர்-வாயிலிடப்பட்டது)
GET/auth/configநிறுவல் எந்த உள்நுழைவு முறைகளை வழங்குகிறது
POST/auth/loginமின்னஞ்சல் + கடவுச்சொல்லுடன் உள்நுழையவும்; ஒரு அமர்வு JWT-ஐ, அல்லது ஒரு TOTP சவாலைத் திருப்பித் தருகிறது
POST/auth/login/totpஒரு authenticator குறியீடு அல்லது மீட்புக் குறியீடுடன் உள்நுழைவை முடிக்கவும்
POST/auth/passkey/login/start · /auth/passkey/login/finishகடவுச்சொல்லற்ற WebAuthn உள்நுழைவு
GET/auth/oauth/github/start · /auth/oauth/github/callback · /auth/oauth/google/start · /auth/oauth/google/callback · POST /auth/oauth/exchangeGitHub அல்லது Google உடன் OAuth உள்நுழைவு
POST/auth/refresh · /auth/refresh/revokerefresh token-ஐச் சுழற்ற / ரத்து செய்ய
POST/auth/logoutவெளியேறவும் (refresh token-ஐ ரத்து செய்கிறது)
POST/auth/forgot-password · /auth/reset-passwordஒரு reset மின்னஞ்சலைக் கோர / reset token-ஐப் பயன்படுத்த
POST/auth/accept-invite/lookup · /auth/accept-inviteஒரு invitation token → email-ஐத் தீர்க்க / திட்ட அழைப்பை ஏற்க (அங்கீகரித்த பிறகு)

கணக்கு / அடையாளம்

Section titled “கணக்கு / அடையாளம்”

இவை caller மீது செயல்படுகின்றன, மேலும் ஒரு செல்லுபடியாகும் விசை மட்டுமே தேவை (திட்ட பாத்திரம் இல்லை).

MethodPathவிளக்கம்
GET/meதற்போதைய பயனர் சுயவிவரம்
PUT/meசுயவிவரத்தைப் புதுப்பிக்கவும்
DELETE/meகணக்கை நீக்கவும் — ஒரு நிறுவனத்தின் அல்லது மற்ற உறுப்பினர்களைக் கொண்ட ஒரு திட்டத்தின் ஒரே owner நீங்களாக இருக்கும் வரை மறுக்கப்படுகிறது
GET/me/deletion-impactகணக்கை நீக்குவது எதை அகற்றும், எது அதைத் தடுக்கிறது
PUT/me/passwordகடவுச்சொல்லை மாற்றவும்
PUT/me/settingsஅமைப்புகளைப் புதுப்பிக்கவும் (theme, அறிவிப்பு விருப்பத்தேர்வுகள்)
POST/me/avatarAvatar-ஐப் பதிவேற்றவும் (multipart)
POST/me/api-token/regenerateஉங்கள் API token-ஐச் சுழற்றவும் — இருக்கும் அமர்வுகள்/விசைகளை செல்லாததாக்குகிறது
GET/me/api_keys · POST /me/api_keys · DELETE /me/api_keys/{id}User (ea_user_) API விசைகளை நிர்வகிக்கவும்
GET/me/totp · POST /me/totp/setup · /me/totp/verify · /me/totp/disableஇரு-காரணி (TOTP) பதிவு; verify மீட்புக் குறியீடுகளை ஒருமுறை திருப்பித் தருகிறது
GET/me/passkeys · POST /me/passkeys/register/start · /me/passkeys/register/finish · DELETE /me/passkeys/{credential_id}Passkey பதிவும் அகற்றலும்
GET/me/oauth_grants · DELETE /me/oauth_grants/{grant_id}Connected apps — நீங்கள் அங்கீகரித்த MCP clients மற்றும் OAuth பயன்பாடுகள்
GET/me/activityஅனைத்துத் திட்டங்கள் முழுவதும் உங்கள் செயல்பாடு
GET/me/storiestoken அடையக்கூடிய ஒவ்வொரு திட்டத்திலும் நீங்கள் சொந்தமாக வைத்திருக்கும், கோரிய, அல்லது பின்தொடரும் ஸ்டோரிகள் — role=owned|requested|following, state=, cursor= / limit= (அதிகபட்சம் 200)
GET/me/mentions · POST /me/mentions/{mention_id}/ack@-mention இன்பாக்ஸ் (வடிகட்ட unacked=true) மற்றும் ஒப்புகை — கீழே உள்ள அறிவிப்பு ஊட்டத்திலும் இணைக்கப்பட்டுள்ளது
GET/me/data-exportஉங்கள் தரவின் GDPR சுய-ஏற்றுமதி
GET/me/consent · POST /me/consentஒப்புதலைப் படிக்க / பதிவு செய்ய ({ consent_type, granted })
GET/legal/pending · POST /legal/acceptநிலுவையில் உள்ள clickwrap ஆவணங்கள் / ஏற்பைப் பதிவு செய்தல்
GET / PUT/agent/meஒரு agent key-இன் சொந்த அடையாளமும் சுயவிவரமும், ஏஜெண்டால் படிக்கவும் திருத்தவும் கூடியவை (/me-இன் ஏஜெண்ட்-பக்க இணை)
POST/api/contact · /api/feedback · /api/feedback/with-screenshotதொடர்பு + பயன்பாட்டுள் feedback. /v1-க்கு வெளியே; IP-வாரியாக வீத-வரம்பிடப்பட்டது

Reference data (அங்கீகரிக்கப்படாதது)

Section titled “Reference data (அங்கீகரிக்கப்படாதது)”

ஸ்டோரிகளை உருவாக்கும்போது/மதிப்பிடும்போது பயன்படுத்தப்படும் Seed lookups. நிலையான IDs.

MethodPathவிளக்கம்
GET/story_typesfeature, bug, chore, release (+ allow_points)
GET/story_statesunstarted … accepted, rejected
GET/effort_scalesகிடைக்கும் மதிப்பீட்டு அளவீடுகள்
GET/effort_scales/{scale_id}/valuesஒரு அளவீட்டில் உள்ள புள்ளி மதிப்புகள்
GET/priority_scales · /priority_scales/{scale_id}/valuesமுன்னுரிமை அளவீடுகளும் அவற்றின் மதிப்புகளும் (ஒரு ஸ்டோரியில் உள்ள priority_id இங்கே தீர்க்கப்படுகிறது)

ஹோஸ்ட் செய்யப்பட்ட சேவையில் மட்டுமே — சுயமாக-ஹோஸ்ட் செய்யப்பட்ட நிறுவல் ஒற்றை-நிறுவன முறையில் இயங்குகிறது, இவற்றை mount செய்வதில்லை (நிறுவனப் பட்டியல் தவிர). பாத்திரங்கள் நிறுவனப் பாத்திரங்கள்: owner, admin, member.

MethodPathவிளக்கம்
GET / POST/organizationsஉங்கள் நிறுவனங்களைப் பட்டியலிட / ஒன்றை உருவாக்க
GET / PUT / DELETE/organizations/{oid}படிக்க, மறுபெயரிட (பெயர் + slug; owner அல்லது admin), நீக்க
GET / POST/organizations/{oid}/memberships · PUT / DELETE …/memberships/{member_id}உறுப்பினர்களும் அழைப்புகளும்; அழைப்புகள் ஒரு பாத்திர உச்சவரம்பைச் சுமக்கின்றன (அழைப்பவருடையதற்கு மேல் ஒருபோதும் இல்லை; owner-க்கு ஒருபோதும் அழைப்பு இல்லை)
POST/organizations/{oid}/memberships/bulk-role · …/memberships/bulk-removeஒரே நேரத்தில் 200 உறுப்பினர்கள் வரை பாத்திரத்தை மாற்றவும் அல்லது அகற்றவும். அனைத்தும் அல்லது எதுவுமில்லை: கடைசி owner-ஐ அகற்றும் அல்லது ஒரு திட்டத்தை உரிமையாளர் இல்லாமல் விடும் தொகுப்பு முழுமையாக நிராகரிக்கப்படும்; reassign_confirmed உடன் நீங்கள் அந்தத் திட்டங்களின் உரிமையாளர் ஆவீர்கள்
DELETE/organizations/{oid}/invitations/{invitation_id}நிலுவையில் உள்ள ஒரு அழைப்பை ரத்து செய்யவும்
POST/organizations/{oid}/transfer-ownershipowner பாத்திரத்தை மற்றொரு உறுப்பினரிடம் ஒப்படைக்கவும்
PUT/organizations/{oid}/memberships/{member_id}/anonymizationஒரு உறுப்பினரின் பெயர் / மின்னஞ்சல் / avatar-ஐ நிறுவனம் முழுவதும் மறைக்கவும்
GET/organization-invitations/{token} · POST …/{token}/acceptமின்னஞ்சலில் வந்த நிறுவன அழைப்பைத் தீர்க்க / ஏற்க
POST/organizations/{oid}/export · GET / POST …/export/jobs · GET …/export/jobs/{job_id} · …/export/jobs/{job_id}/downloadowner-மட்டுமே நிறுவன ஏற்றுமதி: ஒரு SQL dump மற்றும் ஒவ்வொரு இணைப்பும் கொண்ட ஒரு zip, ஒரு வேலையாக இயக்கப்படுகிறது
MethodPathவிளக்கம்
GET/projectsஉங்கள் திட்டங்களைப் பட்டியலிடவும் (limit ≤ 200)
POST/projectsஒரு திட்டத்தை உருவாக்கவும்
GET/projects/{id}திட்ட விவரங்களைப் பெறவும் (viewer)
PUT/projects/{id}திட்ட அமைப்புகளைப் புதுப்பிக்கவும் (manager)
DELETE/projects/{id}ஒரு திட்டத்தை நீக்கவும் (manager)
POST/projects/{id}/pinஉங்கள் திட்டப் பட்டியலில் திட்டத்தை pin / unpin செய்யவும்
POST/projects/{id}/transfer-organizationதிட்டத்தை மற்றொரு நிறுவனத்திற்கு நகர்த்தவும் (manager)
POST/projects/{id}/slack/testதிட்டத்தின் Slack ஊட்டத்திற்கு ஒரு சோதனைச் செய்தியை அனுப்பவும் (manager)
GET / POST/projects/{id}/showcase_claim_eligibility · /projects/{id}/showcase_claim · /projects/{id}/showcase_seedபொதுக் காட்சித் திட்டங்கள்: நீங்கள் ஒன்றைக் கோர முடியுமா எனச் சரிபார்க்க, அதைக் கோர, அதை விதைக்க
GET/projects/{id}/audit-logAudit log வாசிப்பு — திட்ட வரலாறு மற்றும் surface= வழியாக ஸ்டோரி வாரியான / epic வாரியான செயல்பாடு; அணுகல் surface-ஐப் பொறுத்து மாறும், கீழே பார்க்கவும்
GET/projects/{id}/eventsCursor-paginated நிகழ்வு ஓடை (member)Events பார்க்கவும்

Audit log query அளவுருக்கள்: event_type= (ஒரு வகை அல்லது காற்புள்ளியால் பிரிக்கப்பட்ட பட்டியல்), limit= (≤ 1000), before= (keyset cursor, ISO-8601 created_at), surface= (project_history, story_activities, epic_activities), target_id= (ஸ்டோரி/epic-இன் id — surface=story_activities அல்லது epic_activities எனில் அவசியம்). அணுகல்: வடிகட்டப்படாத log மற்றும் surface=project_history (manager); story_activities / epic_activities-ஐ திட்டத்தின் எந்த உறுப்பினரும் வாசிக்கலாம், பொது திட்டங்களில் அநாமதேயமாகவும் — செயல்பாட்டாளரின் PII மறைக்கப்படும்.

உறுப்பினர்கள், ஏஜெண்ட்கள், மற்றும் agent keys

Section titled “உறுப்பினர்கள், ஏஜெண்ட்கள், மற்றும் agent keys”
MethodPathவிளக்கம்
GET/projects/{id}/membershipsஉறுப்பினர்களைப் பட்டியலிடவும் (viewer)
POST/projects/{id}/membershipsமின்னஞ்சல் மூலம் ஒரு உறுப்பினரை அழைக்கவும் (manager)
PUT/projects/{id}/memberships/{mid}பாத்திரத்தைப் புதுப்பிக்கவும் (manager)
DELETE/projects/{id}/memberships/{mid}ஒரு உறுப்பினரை அகற்றவும் (manager)
GET/projects/{id}/addable-members · POST /projects/{id}/members/add-existingஇன்னும் திட்டத்தில் இல்லாத நிறுவன உறுப்பினர்கள் / மின்னஞ்சல் அழைப்பு இல்லாமல் ஒருவரைச் சேர்க்க (manager)
POST/projects/{id}/members/joinஒரு நிறுவன owner அல்லது admin தங்கள் நிறுவனத்தில் உள்ள ஒரு திட்டத்தில் manager-ஆகச் சேர்கிறார், அல்லது தங்களை manager-ஆக உயர்த்திக்கொள்கிறார் (திட்டப் பட்டியலில் உள்ள Make me owner செயல்)
PUT/projects/{id}/members/{mid}/anonymizationஇந்தத் திட்டத்தில் ஒரு உறுப்பினரின் பெயர் / மின்னஞ்சல் / avatar-ஐ மறைக்கவும் (manager)
GET / POST/projects/{id}/agent_keysagent keys-ஐ பட்டியலிட / உருவாக்க — managers, அல்லது திட்டத்தின் creator-roles policy அனுமதிக்கும் பாத்திரங்கள்
DELETE/projects/{id}/agent_keys/{kid}ஒரு agent key-ஐ ரத்து செய்யவும்
GET/projects/{id}/agent_keys/onboardingonboarding bundle: பொதுவான ஏஜெண்ட் clients-க்கான prompts மற்றும் config கோப்புகள்
GET/projects/{id}/agents · GET / PUT /projects/{id}/agents/{aid}திட்டத்தின் ஏஜெண்ட்களும் அவற்றின் சுயவிவரங்களும் (பெயர், initials, விளக்கம், நிறம்)
POST/projects/{id}/agents/{aid}/rotate-key · /projects/{id}/agents/{aid}/avatarஒரு ஏஜெண்டின் விசையைச் சுழற்ற (அடையாளமும் வரலாறும் தக்கவைக்கப்படுகின்றன) / அதன் avatar-ஐப் பதிவேற்ற

அனைத்து ஸ்டோரி எழுத்துகளுக்கும் member பாத்திரம் தேவை.

MethodPathவிளக்கம்
GET/projects/{id}/storiesஸ்டோரிகளைப் பட்டியலிடவும் (paginated, வடிகட்டக்கூடியது) (viewer)
POST/projects/{id}/storiesஒரு ஸ்டோரியை உருவாக்கவும்
GET/projects/{id}/stories/{sid}ஒரு ஸ்டோரியைப் பெறவும் (viewer)
PUT/projects/{id}/stories/{sid}ஒரு ஸ்டோரியைப் புதுப்பிக்கவும்
DELETE/projects/{id}/stories/{sid}ஒரு ஸ்டோரியை நீக்கவும்
POST/projects/{id}/stories/{sid}/transitionsசரிபார்ப்புடன் நிலையை மாற்றவும்
POST/projects/{id}/stories/{sid}/reject · /projects/{id}/stories/{sid}/restartdelivered ஆன ஒரு ஸ்டோரியை நிராகரிக்க / நிராகரிக்கப்பட்ட ஒன்றை மீண்டும் started-க்குக் கொண்டுவர (/transitions-க்கு rejected ஒரு இறுதி நிலை)
POST/projects/{id}/stories/{sid}/archive · /projects/{id}/stories/{sid}/unarchiveஒரு ஸ்டோரியை archive / unarchive செய்யவும்
POST/projects/{id}/stories/bulk_transitionஒரே நேரத்தில் பல ஸ்டோரிகளை மாற்றவும் (1–100)
POST/projects/{id}/stories/bulk-archive · bulk-delete · bulk-duplicate · bulk-moveபல ஸ்டோரிகளை archive, நீக்க, நகலெடுக்க, அல்லது நகர்த்த (ஒரு பலகத்திற்கு / நிலையிடத்திற்கு)
POST/projects/{id}/stories/{sid}/duplicateஒரு ஸ்டோரியை நகலெடுக்கவும்
GET / POST / DELETE/projects/{id}/stories/{sid}/epics · …/epics/{eid}ஸ்டோரியின் epic உறுப்பினர்
GET/short-links/{code} · /story-referencesஒரு /s/<code> குறு இணைப்பை அதன் ஸ்டோரிக்குத் தீர்க்க / 100 வரையிலான ஸ்டோரி references-ஐ (#id, URLs) அழைப்பவர் படிக்கக்கூடிய ஸ்டோரிகளுக்குத் தீர்க்க

ஸ்டோரி-பட்டியல் query parameters: archived= (exclude இயல்புநிலை / include / only — மூன்று-நிலை archived வடிகட்டி; வழக்கொழிந்த include_archived=true-க்குப் பதிலாக வருகிறது, அது இப்போது archived=include-இன் மாற்றுப்பெயர்), include_done=true (கடந்த மறுசுழற்சிகளில் உறைந்த Done-பேனல் ஸ்டோரிகளை அனுமதிக்கிறது; இயல்புநிலையில் விலக்கப்படும்). Pagination (cursor= / limit= / offset=) மற்றும் sparse fieldsets (fields=) Pagination மற்றும் புல projection பிரிவுகளைப் பின்பற்றுகின்றன.

Create (POST …/stories): { "name" (required), "story_type": "feature|bug|chore|release", "description"?, "estimate"?, "current_state"?, "icebox"?, "labels"? }. estimate என்பது அளவீட்டு மதிப்பின் லேபிள் ஒரு string-ஆக ("3", "13"); ஒரு JSON எண் நிராகரிக்கப்படுகிறது. labels ["auth"] அல்லது [{ "name": "auth" }]-ஐ ஏற்றுக்கொள்கிறது; தெரியாத labels உருவாக்கப்படுகின்றன. இயல்புநிலைகள்: story_type=feature, current_state=unstarted.

Update (PUT …/stories/{sid}): அதே புலங்கள், அனைத்தும் விருப்பம், மேலும் "position" (float), "force_state_change" (bool), மற்றும் "expected_updated_at" (RFC 3339 — நீங்கள் படித்த பிறகு ஸ்டோரி மாறியிருந்தால் ஒரு விளக்கச் சேமிப்பு 409 stale_write உடன் மறுக்கப்படுகிறது). ஸ்டோரி எழுத்துகள் ஸ்டோரியின் ETag-க்கு எதிராக If-Match-ஐயும் மதிக்கின்றன; பொருந்தாமை 412 precondition_failed.

Transition (POST …/transitions): { "to": "<state>" }. புலம் to. { story_id, state }-ஐத் திருப்பித் தருகிறது. சட்டவிரோத நகர்வு → 422 invalid_transition உடன் details: { from, to, allowed }.

Bulk transition (POST …/bulk_transition): { "story_ids": [int,…] (1–100), "to": "<state>" }. ஒவ்வொரு ஸ்டோரியும் சுயாதீனமாக மதிப்பிடப்படுகிறது; { results: [ { id, status: "ok" } | { id, status: "failed", error } ] }-ஐத் திருப்பித் தருகிறது.

ஸ்டோரி துணை-ஆதாரங்கள்

Section titled “ஸ்டோரி துணை-ஆதாரங்கள்”

அனைத்தும் member. பெரும்பாலானவற்றில் List/GET (viewer).

MethodPathBody / குறிப்புகள்
GET / POST/projects/{id}/stories/{sid}/tasks · PUT/DELETE …/tasks/{tid}{ description (or task_desc), complete?, task_order? }
GET / POST/projects/{id}/stories/{sid}/comments · PUT/DELETE …/comments/{cid}{ text (or comment_text) } அல்லது { comment_emoji }. GET fields=-ஐ ஏற்றுக்கொள்கிறது (allowlist: comment_id, story_comment_id, story_id, comment_text, comment_emoji, member, created), கூடுதலாக cursor= / limit= (≤ 200) / order=asc|desc
GET / POST/projects/{id}/stories/{sid}/blockers · PUT/DELETE …/blockers/{bid}{ blocker_desc, resolved? }
GET / POST/projects/{id}/stories/{sid}/links · PUT/DELETE …/links/{lid}{ url, link_type?, title? }link_typerelates_to, duplicates, blocks, is_blocked_by, pull_request, branch, other; GitHub /pull/ மற்றும் /tree/ URL-கள் தானாக வகைப்படுத்தப்படுகின்றன
GET / POST/projects/{id}/stories/{sid}/reviews · PUT/DELETE …/reviews/{rid}உருவாக்கம்: { reviewer_id? / reviewer_agent_id?, comment? } — உங்களையே ஒதுக்க இரண்டையும் தவிர்க்கவும். புதுப்பிப்பு: { status, comment? }
GET / POST/projects/{id}/stories/{sid}/owners · DELETE …/owners/{mid} · DELETE …/owners/agents/{aid}{ member_id? / agent_id? } — caller-ஐச் சேர்க்க இரண்டையும் தவிர்க்கவும்
GET / POST/projects/{id}/stories/{sid}/followers · DELETE …/followers/{mid} · DELETE …/followers/agents/{aid}{ member_id? / agent_id? }
GET / POST/projects/{id}/stories/{sid}/labels · DELETE …/labels/{lid}{ name }
GET / POST/projects/{id}/stories/{sid}/attachments (+ /json) · DELETE …/attachments/{aid}multipart பதிவேற்றம் — வீடியோ ≤ 200 MB, PDF / Word / Excel ≤ 25 MB, படங்கள் / CSV / உரை ≤ 10 MB; list (viewer)
GET / POST/projects/{id}/stories/{sid}/link-attachments · DELETE …/link-attachments/{laid}இணைப்பு-இணைப்புகள் — ஒரு code link-ஆக அல்லாமல், கோப்பு இணைப்புகளுடன் சேர்த்து வைக்கப்படும் ஒரு வெளிப்புற URL
GET/attachments/{token} · /api/avatars/{token}ஒரு இணைப்பு அல்லது ஒரு avatar-இன் token-முகவரியிட்ட reads — API வழங்கும் URL-கள்; X-TrackerToken தேவையில்லை

ஸ்டோரிகளின் அதே வடிவம், நிலை இயந்திரம் இல்லாமல். எழுத்துகளுக்கு member, reads-க்கு (viewer).

MethodPathவிளக்கம்
GET / POST/projects/{id}/epics · GET / PUT / DELETE …/epics/{eid}Epics ஒரு பெயர், ஒரு Markdown விளக்கம், மற்றும் அவற்றின் ஸ்டோரிகளை இணைக்கும் ஒரு பின்புல லேபிளைச் சுமக்கின்றன
GET / POST / PUT / DELETE…/epics/{eid}/comments · …/comments/{cid}Epic கருத்துகள்
GET / POST / DELETE…/epics/{eid}/owners · …/followers (+ /agents/{aid} வகைகள்)உரிமையாளர்களும் பின்தொடர்பவர்களும், உறுப்பினர்கள் அல்லது ஏஜெண்ட்கள் — ஒரு epic-இன் உரிமையாளர்கள் அதன் ஸ்டோரிகளுக்குப் பரவுகின்றனர்
GET / POST / DELETE…/epics/{eid}/attachments (+ /json) · …/link-attachmentsஇணைப்புகள், ஸ்டோரிகளின் அதே வரம்புகள்
GET/projects/{id}/analytics/epics · …/analytics/epics/{eid}epic-வாரியான முன்னேற்றம்: burnup, throughput, ஆரோக்கியம், கணிப்பு (viewer)

எழுத்துகளுக்கு member, reads-க்கு (viewer).

MethodPathவிளக்கம்
GET / POST/projects/{id}/labelsஒரு label-ஐ பட்டியலிடு / உருவாக்கு
PUT / DELETE/projects/{id}/labels/{lid}ஒரு label-ஐ புதுப்பிக்க / நீக்க
POST/projects/{id}/labels/{lid}/archiveஒரு label-ஐ archive (soft-hide) செய்யவும்

Reads எந்தத் திட்டப் பாத்திரத்திற்கும் திறந்தவை, மேலும் பொதுத் திட்டத்தில் அநாமதேயமாகவும்.

MethodPathவிளக்கம்
GET/projects/{id}/iterationsமறுசுழற்சிகளைப் பட்டியலிடவும் (ஒரு பக்கத்திற்கு ≤ 500; ஒரு ETag-ஐயும், துண்டிக்கப்படும்போது X-Tracker-Pagination-* தொடர்ச்சி headers-ஐயும் சுமக்கிறது)
GET/projects/{id}/iterations/{itid}ஒரு மறுசுழற்சி
GET/projects/{id}/iterations/first-previewமுதல் மறுசுழற்சி பெறும் தேதிகள், விதைப்பு உறுதிப்படுத்தலில் காட்டப்படுபவை
POST/projects/{id}/iterationsஒரு கைமுறை மறுசுழற்சியை உருவாக்கவும் (member)
DELETE/projects/{id}/iterations/{itid}ஒரு மறுசுழற்சியை நீக்கவும் (manager)
PUT/projects/{id}/iterations/{itid}/velocityதிட்ட உத்தியை மாற்றாமல் ஒரு மறுசுழற்சியின் வேகத்தை மேலெழுதவும் (manager)
GET/projects/{id}/iterations/{itid}/done-storiesமூடப்பட்ட ஒரு மறுசுழற்சியின் ஏற்றுக்கொள்ளப்பட்ட ஸ்டோரிகள், paginated

தேடல், அளவீடுகள், விருப்பத்தேர்வுகள்

Section titled “தேடல், அளவீடுகள், விருப்பத்தேர்வுகள்”
MethodPathவிளக்கம்
GET/projects/{id}/search?q=…சக்திவாய்ந்த தேடல் — முழு-உரை + facet / தேதி-வரம்பு / நபர் qualifiers (GitHub-பாணி DSL); { results, total, limit, offset }-ஐத் திருப்பித் தருகிறது. query என்பது q-இன் மாற்றுப்பெயர்; limit= (இயல்புநிலை 50, அதிகபட்சம் 1000) / offset= பக்கமிடுகின்றன; sort= relevance (இயல்புநிலை), created, created_asc, state அல்லது updated படி வரிசைப்படுத்துகிறது. (viewer)வழிகாட்டியைப் பார்க்கவும்
GET/projects/{id}/metrics/{velocity,burndown,story-types,contributors}Metrics பக்கத்தின் தொடர்கள் (viewer); epic அளவீடுகள் மேலே /analytics/epics-இன் கீழ் உள்ளன
GET/projects/{id}/backlog/groupingBacklog-இன் கணிக்கப்பட்ட மறுசுழற்சி குழுக்கள் (viewer)
GET / PUT/projects/{id}/preferencesஇந்தத் திட்டத்திற்கான உங்கள் போர்டு விருப்பத்தேர்வுகள் — எந்தத் திட்டப் பாத்திரமும், உங்கள் சொந்த வரிசை மட்டுமே
MethodPathவிளக்கம்
GET/projects/{id}/eventsCursor-paginated நிகழ்வு ஓடை (member) — viewers 403 பெறுகிறார்கள்

Query parameters: since=<event_id>, types=story.created,story.transitioned,comment.added,…, limit= (≤ 500), cursor=. பதில் next_cursor-ஐ உள்ளடக்குகிறது. நீங்கள் கடைசியாகப் பார்த்த event_id-ஐ since-ஆக அனுப்பி தொடரவும்.

பயன்பாட்டிற்குள் ஒருங்கிணைந்த அறிவிப்பு ஊட்டம்: முதல்-தர அறிவிப்பு வரிசைகள் (மதிப்பாய்வு கோரிக்கைகள், story செயல்பாடு, அழைப்புகள், …) @-குறிப்பீடு இன்பாக்ஸுடன் இணைக்கப்பட்டு, புதியது முதலில் என ஒரே ஸ்ட்ரீமாக. ஊட்ட id-களில் மூல முன்னொட்டு உண்டு (nt-… / sc-… / ec-…). உறுப்பினர் அமர்வுகளும் ea_user_* விசைகளும் தங்கள் உறுப்பினர்-பக்க வரிசைகளை வாசிக்கின்றன; ea_agent_* விசைகள் தங்கள் ஏஜெண்ட்-பக்க வரிசைகளை.

MethodPathவிளக்கம்
GET/me/notificationsஉங்கள் அறிவிப்பு ஊட்டம். வடிப்பான்கள்: unread=true, since_id=, kind= (mentions / reviews / stories / invitations); பக்கமிட cursor= / limit=
GET/me/notifications/unread-countபடிக்காதவற்றின் மொத்தங்கள் — { unread_count, by_category: { mentions, reviews, stories, invitations } }
POST/me/notifications/read-allஅனைத்தையும் படித்ததாகக் குறிக்கவும்; புதுப்பிக்கப்பட்ட எண்ணிக்கைகளைத் திருப்பித் தருகிறது
POST/me/notifications/{id}/ackஒரு உருப்படியைப் படித்ததாகக் குறிக்கவும் (idempotent)
POST/me/notifications/{id}/acceptஊட்டத்திலிருந்தே திட்ட / அமைப்பு அழைப்பை ஏற்கவும் (உறுப்பினர் டோக்கன்கள் மட்டும்)
POST/me/notifications/{id}/declineதிட்ட / அமைப்பு அழைப்பை நிராகரிக்கவும் (உறுப்பினர் டோக்கன்கள் மட்டும்)
GET/me/notifications/resolve-invite?token=…மின்னஞ்சலில் வந்த அழைப்பு டோக்கனை உங்கள் அறிவிப்பு id-உடன் பொருத்தவும் — { "id": "nt-…" } அல்லது { "id": null }
GET/me/notifications/streamநேரடி push — Server-Sent Events (text/event-stream); கீழே காண்க

stream endpoint ஒரு JSON endpoint அல்ல, எனவே அது OpenAPI விவரக்குறிப்பில் இல்லை: அது இணைப்பைத் திறந்தே வைத்திருந்து, புதியது வரும் ஒவ்வொரு முறையும் payload இல்லாத ஃப்ரேமை ({"type":"notification","kind":…}) அனுப்பி, ஊட்டத்தை மீண்டும் பெறுமாறு client-க்கு அறிவிக்கிறது. இணைப்புகள் சேவையக பக்கம் 45 நிமிடங்களுக்குப் பிறகு துண்டிக்கப்படும் — மீண்டும் இணைந்து மீண்டும் அங்கீகரிக்கவும். உறுப்பினர் அமர்வுகளும் ea_user_* விசைகளும் மட்டுமே; ea_agent_* விசைகளுக்கு 403 கிடைக்கும்.

MethodPathவிளக்கம்
POST/projects/{id}/importகோப்பு மூலங்கள்: source=pivotal, jira, asana, gitlab, shortcut, trello, linear, plane, plane_json, eat. Multipart file=. ஒத்திசைவானது — முடிவு எண்ணிக்கைகளுடன் பதிலளிக்கிறது.
POST/projects/{id}/import/jsonJSON body; source=github-க்குக் கோப்பு தேவையில்லை — owner, repo, விருப்ப token, மற்றும் opt-in கொடிகள் include_pull_requests / include_milestones / include_releases / include_dependencies; கோப்பு மூலங்கள் file_base64-ஐ அனுப்புகின்றன. ஒத்திசைவற்றது: 202 { import_id, status }-ஐத் திருப்பித் தருகிறது. சர்வர் GitHub-இன் GraphQL API வழியாக எடுக்கிறது, அது அநாமதேய அழைப்பாளர்களை மறுக்கிறது, எனவே GitHub-ஐ எப்போதும் ஒரு டோக்கன் சென்றடைகிறது — உங்களுடையது, அல்லது நிறுவலின் பகிரப்பட்டது. பார்க்க வழிகாட்டி.
GET/projects/{id}/imports/{import_id}ஒரு வேலையை poll செய்யவும்: status pending → fetching → writing → done | failed என இயங்குகிறது, எடுக்கும்போது progress_current / progress_total உடனும், done-இல் முடிவு எண்ணிக்கைகளுடனும்

ஒரு திட்டத்திற்கு ஒரே நேரத்தில் ஒரு இறக்குமதி மட்டுமே இயங்குகிறது; ஒன்று நடந்துகொண்டிருக்கும்போது இரண்டாவது POST 409 import_already_running. dry_run: true (JSON body அல்லது dry_run=true multipart) எந்த மூலத்தையும் முன்னோட்டமிடுகிறது: அலசி, தீர்த்து, நகல்நீக்கி, அதே { imported, skipped, errors, unmatched } எண்ணிக்கைகளைத் தந்து, பின்னர் திரும்பப் பெறுகிறது — எதுவும் எழுதப்படுவதில்லை. வரம்புகள்: 10 MiB body, மற்றும் கோப்பு அடிப்படையிலான மூலங்களுக்கு ஒரு இறக்குமதிக்கு 5,000 ஸ்டோரிகள் (இரண்டில் ஏதேனும் ஒன்றை மீறினால் → 400, எதுவும் எழுதப்படுவதில்லை). GitHub மூலத்திற்கு வரம்பே இல்லை — அது ஒற்றை பரிவர்த்தனைக்குப் பதிலாக துண்டுகளாக எழுதுகிறது. மறு-இறக்குமதி source id வாரியாக idempotent — ஏற்கனவே இறக்குமதி செய்யப்பட்ட வரிசைகள் நகலெடுக்கப்படுவதில்லை, தவிர்க்கப்படுகின்றன.

MethodPathவிளக்கம்
GET/projects/{id}/export/formatsபதிவுசெய்யப்பட்ட வடிவங்கள்: { id, name, content_type, drops, includes_archived }. எந்தத் திட்டப் பாத்திரமும்.
GET/projects/{id}/export/{format}ஒன்றைப் பதிவிறக்கவும் (manager). பரிமாற்றம்: eat (முழு நம்பகத்தன்மை), jira, pivotal, shortcut, trello, asana, gitlab, linear, plane, plane_json; ஆவணங்கள்: pdf, docx.
GET/projects/{id}/export/attachmentsஒவ்வொரு இணைப்பும் ஒரே உலாவக்கூடிய zip-ஆக (கோப்புகள் அசல் பெயர்களை வைத்திருக்கின்றன; JSON + CSV manifest) (manager).

ஆவண exports (pdf, docx) கூடுதல் query parameters-ஐ ஏற்றுக்கொள்கின்றன: page_size= (letter இயல்புநிலை / a4 / legal / folio), from= / to= (ஸ்டோரி-சாளர எல்லைகள் — RFC 3339 அல்லது வெறும் YYYY-MM-DD; ஒரு ஸ்டோரியின் created அல்லது completed_at அதற்குள் விழும்போது அது வரம்பில் உள்ளது), include_icebox= / include_backlog= (இரண்டும் இயல்புநிலையில் false, எனவே பகிரக்கூடிய export திட்டமிடப்பட்ட / நடைபெறும் வேலையை மட்டுமே காட்டுகிறது). Interchange CSV வடிவங்கள் இவற்றைப் புறக்கணிக்கின்றன.

Backups மற்றும் restores (manager)

Section titled “Backups மற்றும் restores (manager)”
MethodPathவிளக்கம்
GET / POST/projects/{id}/backups · GET …/backups/{snapshot_id} · …/backups/healthsnapshots-ஐப் பட்டியலிட, இப்போதே ஒன்றை எடுக்க, ஒன்றைப் படிக்க, மற்றும் தக்கவைப்பு ஆரோக்கியச் சுருக்கம்
GET / POST/projects/{id}/restores · POST …/restores/partial · GET …/restores/{restore_id}ஒரு முழு snapshot-ஐ, அல்லது அதிலிருந்து தேர்ந்தெடுத்த அட்டவணைகளை restore செய்ய, மற்றும் restore-ஐ poll செய்ய

POSTகள் sensitive வீத-வரம்பு அடுக்கில் அமர்ந்துள்ளன (கீழே).

MCP மற்றும் OAuth வழங்குநர்

Section titled “MCP மற்றும் OAuth வழங்குநர்”

East Agile Tracker என்பது MCP clients-க்கான ஒரு OAuth 2.1 வழங்குநர். ஒரு client அதை /.well-known/oauth-authorization-server மற்றும் /.well-known/oauth-protected-resource/mcp இல் கண்டறிந்து, உங்களை /oauth/authorize-க்கு (ஒப்புதல் பக்கம்) அனுப்பி, /oauth/token இல் குறியீட்டைப் பரிமாறி, பின்னர் விளைவாகக் கிடைக்கும் ea_mcp_* token உடன் /mcp இல் MCP பேசுகிறது. அனுமதிகள் /me/oauth_grants இல் பட்டியலிடப்பட்டு ரத்து செய்யப்படுகின்றன. வழங்குநர் endpoints-க்கு அவற்றுக்கெனச் சொந்த வீத-வரம்பு அடுக்கு உள்ளது.

wss://eastagiletracker.com/ws/control?token=<session JWT>

ஊடாடும் UI தொலைதூரக்-கட்டுப்பாட்டிற்கு ({ "action": "get_state", "id": "req-1" }). token என்பது ஒரு உலாவி அமர்வு JWT — ஒரு API விசை upgrade-க்கு முன்பே 401 உடன் மறுக்கப்படுகிறது. ஒரு தரவு சேனல் அல்ல — அனைத்து reads/writes-ம் REST வழியாகச் செல்கின்றன. ஒற்றை-நிகழ்வு மட்டுமே; replicas முழுவதும் விரிக்கப்படவில்லை.

எழுதும் endpoints (POST, PUT, DELETE) ஒரு Idempotency-Key header-ஐ ஏற்றுக்கொள்கின்றன. அதே விசை + அதே body cached பதிலை மீண்டும் இயக்குகிறது (24-மணிநேர சாளரம்); அதே விசை + ஒரு வேறு body 409 idempotency_conflict-ஐத் திருப்பித் தருகிறது. விசை அதை அனுப்பிய சான்றுக்கு வரம்பிடப்பட்டது. GET/HEAD/OPTIONS, /openapi.json மற்றும் /docs, /api/auth/*, அல்லது /attachments பாதைகளில் உள்ள multipart பதிவேற்றங்களுக்குப் பயன்படுத்தப்படவில்லை. ஒரு domain பதிலை எட்டாமல் நின்ற பதில்கள் ஒருபோதும் cache செய்யப்படுவதில்லை — 401, 403, 404, 429, மற்றும் ஒவ்வொரு 5xx — எனவே இவற்றில் எதற்குப் பிறகும் ஒரு மறுமுயற்சி handler-ஐ அடைகிறது; 400, 409, 412, மற்றும் 422 domain-இன் பதில், அவை வெற்றியைப் போலவே மீண்டும் இயக்கப்படுகின்றன.

List endpoints cursor=<opaque> மற்றும் limit=<n>-ஐ ஏற்றுக்கொள்கின்றன. அமைக்கப்பட்டால், பதில் { "items": [...], "next_cursor": "<str|null>" }; page செய்ய next_cursor-ஐ மீண்டும் அனுப்பவும். limit உச்சவரம்பு endpoint-வாரியானது: ஸ்டோரிகள், கருத்துகள், மற்றும் திட்டங்களில் 200; events-இல் 500; தேடல் மற்றும் audit log-இல் 1000.

தன் பதிலைத் துண்டிக்க வேண்டியிருந்த ஒரு சாதாரண பட்டியல் (cursor/limit இல்லாமல்) அதை headers-இல் சொல்கிறது — X-Tracker-Pagination-Truncated, X-Tracker-Pagination-Limit, X-Tracker-Pagination-Offset, மற்றும் X-Tracker-Pagination-Next-Offset; அடுத்த பக்கத்திற்குக் கடைசியானதை offset=-ஆகத் திருப்பி அனுப்பவும். மொத்த-எண்ணிக்கை header எதுவும் இல்லை.

List endpoints குறிப்பிட்ட புலங்களை மட்டுமே திருப்பித் தர fields= (கமாவால் பிரிக்கப்பட்டது)-ஐ ஏற்றுக்கொள்கின்றன. story_id எப்போதும் சேர்க்கப்படுகிறது; ஒரு தெரியாத புல பெயர் details.fields-இல் குற்றவாளி பெயர்களுடன் 400 validation_failed-ஐத் திருப்பித் தருகிறது.

GET /projects/123/stories?fields=story_id,name,current_state,owners

ஒவ்வொரு JSON பிழைக்கும் code மற்றும் error உள்ளது; சில details-ஐச் சேர்க்கின்றன:

{ "code": "invalid_transition",
"error": "Cannot move story from `unstarted` to `accepted`",
"details": { "from": "unstarted", "to": "accepted", "allowed": ["started"] } }
Statuscodeஎப்போது
400invalid_parameterமோசமான உள்ளீடு; செய்தி error-இல், details இல்லை (பெரும்பாலான சரிபார்ப்பு: blank/length/null-byte/email)
400validation_failedகட்டமைக்கப்பட்ட உள்ளீட்டுப் பிழை; details.fields குற்றவாளி புல பெயர்களின் ஒரு array
401unauthenticatedவிடுபட்ட/தவறான token
403unauthorized_operationஅங்கீகரிக்கப்பட்டது ஆனால் போதிய பாத்திரம் இல்லை
404unfound_resourceகிடைக்கவில்லை — non-members-க்கும் திருப்பித் தரப்படுகிறது
409conflictஆதார மோதல் (எ.கா. நகல்)
409idempotency_conflictIdempotency-Key வேறு body-உடன் மீண்டும் பயன்படுத்தப்பட்டது
409stale_write · import_already_runningஉங்கள் expected_updated_at-க்குப் பிறகு ஸ்டோரி மாறியது · ஒரு இறக்குமதி ஏற்கனவே நடந்துகொண்டிருக்கிறது
412precondition_failedIf-Match ஆதாரத்தின் தற்போதைய ETag-உடன் பொருந்தவில்லை; details expected மற்றும் current-ஐச் சுமக்கிறது
413request_too_largebody route-இன் அளவு வரம்பை மீறுகிறது
422invalid_transitionசட்டவிரோத நிலை நகர்வு; details { from, to, allowed }-ஐச் சுமக்கிறது
429rate_limitedவீத-வரம்பிடப்பட்ட ஒரு route-இல் இந்த IP-இலிருந்து மிக அதிகமான கோரிக்கைகள்; Retry-After header
500internal_errorசர்வர் தவறு — பொதுவான செய்தி; மீண்டும் முயற்சிக்க பாதுகாப்பானது
503not_configuredஇந்த route-க்குத் தேவையான ஒருங்கிணைப்பு நிறுவலில் இல்லை (SMS, object storage, …)

details.fields என்பது புல பெயர்களின் ஒரு JSON array (எ.கா. ["to"]), சில நேரங்களில் max போன்ற கூடுதல் விசைகளுடன். field→message வரைபடம் எதுவும் இல்லை.

{ "code": "validation_failed", "error": "unknown field(s): foo", "details": { "fields": ["foo"] } }

client IP-வாரியாக, சில routes-இல் மட்டும்; மற்ற இடங்களில் அங்கீகரிக்கப்பட்ட API போக்குவரத்து வீத-வரம்பிடப்படுவதில்லை. இயல்புநிலைகள் (ஒவ்வொரு ஜோடியும் நீடித்த வீதமும் burst-ம், இயக்குநரால் சரிசெய்யக்கூடியவை):

  • Auth/api/auth/*: 0.5 req/s, burst 20.
  • OAuth provider/oauth/*: 1 req/s, burst 60.
  • Public/api/contact: 0.2 req/s, burst 10.
  • Feedback/api/feedback: மூன்று அடுக்கப்பட்ட நிலைகள் — 15 s-க்கு ஒரு சமர்ப்பிப்பு, ஒரு மணிநேரத்திற்கு 10, ஒரு நாளுக்கு 36.
  • Avatars — அங்கீகரிக்கப்படாத avatar redirect: 20 req/s, burst 200.
  • Sensitive — backup மற்றும் restore POSTகள்: ~0.002 req/s, burst 5.

மீறப்பட்ட வரம்பு ஒரு Retry-After header மற்றும் நிலையான JSON பிழை உறையுடன் 429-ஐத் திருப்பித் தருகிறது, code: "rate_limited".