| Source of truth | API-Doc defines the current public external API contract | PM revision mirrors API-Doc in Chinese for contract content | Aligned | Contract changes must land in API-Doc first |
| Auth token prefix | Active auth example is Authorization: Bearer uak_your_api_key | Same active wording is used in the PM revision | Aligned | Use uak_... examples consistently |
| Shared error body | External errors use { code, message, errorKey, traceId } with real HTTP status codes | Same shared error body and status semantics are documented in Chinese | Aligned | /external/* final error body remains the external contract |
| Shared pagination contract | Common envelope fields are page, pageSize, total, totalPages, and hasMore | Same semantics are summarized in Chinese | Aligned | Route-specific request naming and item fields remain endpoint-specific |
| Live endpoint inventory | 16 live endpoints across 5 controller families | Same 16 live endpoints are listed under the implemented-now summary | Aligned | The implemented-now summary matches the current controller inventory |
| Events endpoints | 4 endpoint pages include success status, request section, response example, error responses, and notes | 4 Chinese endpoint sections mirror the same contract data | Aligned | Response examples and status codes now track API-Doc |
| Exhibitors endpoints | 5 endpoint pages define list, search, search-events, profile, and related-events behavior | 5 Chinese endpoint sections mirror the same contract data | Aligned | exhibitor_id-only profile lookup is preserved while search-events covers the direct company-name-to-events flow |
| Personnel endpoints | 3 endpoint pages define list, profile, and related-events behavior | 3 Chinese endpoint sections mirror the same contract data | Aligned | Lightweight public personnel shape is preserved |
| Contacts endpoint | GET /external/contacts/search uses company-based query input and a contact-style response | Chinese endpoint section mirrors the same contract data | Aligned | Email remains intentionally excluded |
| Profile Matching endpoints | Current live contract is POST /external/profile-matching/recommendations/events/paged plus GET /external/profile-matching/recommendations/exhibitors | Chinese endpoint sections mirror the same live contract | Aligned | Profile-matching documentation is aligned to the implemented public routes |
| Intentional differences | English Mintlify prose, navigation, and cross-links | Chinese PM prose and PM-facing framing | Intentional wording difference only | This is not a contract mismatch |