openapi: 3.2.0 info: title: PageAudit Me API version: f5ac3ca0 description: 'Technical SEO auditor that ships the fix. Main client: AI agents. Browsable index at GET /api/.' servers: - url: https://pageaudit.online tags: - name: Me paths: /api/me: get: operationId: get_api_me summary: The session's account, its last 50 audits and the state of the trial description: 'Returns: { user{id,email}, audits[{audit_id,url,score,summary,counts,issues,fixes,jsonLd,headers,truncated,share_slug,created_at}], trial{days,active,days_left?,ends_at,granted?} }' security: - bearerAuth: [] responses: '200': description: '{ user{id,email}, audits[{audit_id,url,score,summary,counts,issues,fixes,jsonLd,headers,truncated,share_slug,created_at}], trial{days,active,days_left?,ends_at,granted?} }' content: application/json: schema: type: object properties: user: allOf: - $ref: '#/components/schemas/Conta' description: The person who owns the session. audits: type: array items: $ref: '#/components/schemas/AuditGravado' description: The account's 50 most recent audits. trial: allOf: - $ref: '#/components/schemas/Trial' description: 'The account''s trial: how many days, whether active and when it ends.' required: - user - audits - trial '401': description: No credential, or an invalid one. See this endpoint's auth. tags: - Me components: schemas: AuditGravado: type: object properties: audit_id: type: string description: ID of the audit. url: type: string description: Final audited URL, after following the redirects. score: type: integer description: Score from 0 to 100. summary: allOf: - $ref: '#/components/schemas/ResumoPagina' description: What the page declared at the time of the run. nullable: true counts: allOf: - $ref: '#/components/schemas/ContagemAchados' description: How many findings of each severity. issues: type: array items: $ref: '#/components/schemas/Achado' description: Everything found in that run. fixes: type: array items: $ref: '#/components/schemas/Correcao' description: The ready fix of each finding; an audit stored before this existed gets the computation on read. jsonLd: type: array items: type: object description: The raw JSON-LD blocks stored. headers: type: object description: Headers of the target's response, as they were in the run. truncated: type: array items: type: string description: What was cut by size when storing. share_slug: type: string description: Public slug, if this audit was shared. nullable: true created_at: type: string description: When the run happened (UTC). required: - audit_id - url - score - summary - counts - issues - fixes - jsonLd - headers - truncated - share_slug - created_at description: The same report re-read from the database. It has no `quota` and no `_links` (it is a read, not a run) and gains the date and the share slug. ContagemAchados: type: object properties: errors: type: integer description: Serious findings. warnings: type: integer description: Findings that deserve attention. info: type: integer description: Observations without severity. required: - errors - warnings - info description: How many findings of each severity — the summary that fits in a badge. ResumoPagina: type: object properties: finalUrl: type: string description: URL after following every redirect. status: type: integer description: Final HTTP status of the target. contentType: type: string description: Content-Type of the final response. nullable: true title: type: string description: Content of `