51offer Ng Lan Correct API

语培口语批改

Operations 9

GET /ngLanCorrect/coupon/today 获取今日优惠券详情 #
GET /ngLanCorrect/couponCount/my 获取我的批改券数量 #
GET /ngLanCorrect/receiveShareCoupon 领取分享批改券 #
GET /ngLanCorrect/robCoupon 领取今日免费批改券 #
GET /ngLanCorrect/saveRecord 提交录音 #
GET /ngLanCorrect/setRemind 设置抢券提醒 #
GET /ngLanCorrect/subject/details 获取题目详情 #
GET /ngLanCorrect/subjects 获取往期口语批改题目列表 #
GET /ngLanCorrect/subjects/my 获取我的口语批改题目列表及我的批改券数量 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/51offer-nglancorrect-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

51offer-nglancorrect-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 51offer Horizon Site Ng Lan Correct API
  version: '1.0'
  summary: 51offer official-site (www.51offer.com) JSON API surface
  description: Machine-readable description of the public JSON API surface of 51offer's official study-abroad site (www.51offer.com).
  contact:
    name: 51offer
    email: woodrow.w@51offer.com
    url: https://www.51offer.com/
  x-provenance:
    converted-from: Swagger 1.2
    source: https://www.51offer.com/api-docs
    fetched: '2026-09-05'
servers:
- url: https://www.51offer.com
  description: '51offer official site API host. Verified live 2026-09-05: GET /ngGpaCalc/constants returned HTTP 200 application/json.'
- url: https://m.51offer.com
  description: 51offer mobile-site host. Serves the same Swagger 1.2 documents at /api-docs (HTTP 200, application/json, 2026-09-05).
tags:
- name: ngLanCorrect
  description: 语培口语批改
paths:
  /ngLanCorrect/coupon/today:
    get:
      operationId: getTodayCouponInfo
      tags:
      - ngLanCorrect
      summary: 获取今日优惠券详情
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/couponCount/my:
    get:
      operationId: queryMyCouponCount
      tags:
      - ngLanCorrect
      summary: 获取我的批改券数量
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: true
        schema:
          type: string
        description: salt
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/receiveShareCoupon:
    get:
      operationId: receiveShareCoupon
      tags:
      - ngLanCorrect
      summary: 领取分享批改券
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: true
        schema:
          type: string
        description: salt
      - name: fromUid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/robCoupon:
    get:
      operationId: robTodayFreeCoupon
      tags:
      - ngLanCorrect
      summary: 领取今日免费批改券
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: true
        schema:
          type: string
        description: salt
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/saveRecord:
    get:
      operationId: saveRecord
      tags:
      - ngLanCorrect
      summary: 提交录音
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: true
        schema:
          type: string
        description: salt
      - name: subjectId
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: recordId
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: recordUrl
        in: query
        required: true
        schema:
          type: string
      - name: recordTime
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: formId
        in: query
        required: false
        schema:
          type: string
      - name: couponCode
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/setRemind:
    get:
      operationId: setRemind
      tags:
      - ngLanCorrect
      summary: 设置抢券提醒
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: true
        schema:
          type: string
        description: salt
      - name: formId
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/subject/details:
    get:
      operationId: getSubjectDetails
      tags:
      - ngLanCorrect
      summary: 获取题目详情
      description: 获取题目详情,sid为空查询最后一条
      parameters:
      - name: sid
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: id
      - name: uid
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: sortUid
      - name: pageNo
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/subjects:
    get:
      operationId: querySubjectsList
      tags:
      - ngLanCorrect
      summary: 获取往期口语批改题目列表
      parameters:
      - name: uid
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: 用户ID
      - name: subjectDateStart
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: 题目日期开始时间
      - name: subjectDateEnd
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: 题目日期结束时间
      - name: pageNo
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: 页码 默认=1
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: 每页条数 默认=10
      - name: beginRow
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: 分页开始行
      - name: endRow
        in: query
        required: false
        schema:
          type: integer
          format: int32
        description: 分页结束行
      - name: id
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: title
        in: query
        required: false
        schema:
          type: string
      - name: content
        in: query
        required: false
        schema:
          type: string
      - name: subjectDate
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: partInNum
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: finishNum
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: remindNum
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: isDelete
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: created
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: creator
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: modified
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: modifier
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: deleted
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: deleter
        in: query
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
  /ngLanCorrect/subjects/my:
    get:
      operationId: queryMySubjectsList
      tags:
      - ngLanCorrect
      summary: 获取我的口语批改题目列表及我的批改券数量
      parameters:
      - name: uid
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: token
        in: query
        required: false
        schema:
          type: string
        description: salt
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      x-swagger-1-2-source: https://www.51offer.com/api-docs/default/nglancorrect
components:
  schemas:
    HttpResult:
      type: object
      properties:
        message:
          type: string
        code:
          type: integer
          format: int32
        data:
          type: object
        header:
          type: string
        page:
          $ref: '#/components/schemas/Page'
        apiInfo:
          $ref: '#/components/schemas/ApiInfo'
      x-swagger-1-2-name: HttpResult
    Page:
      type: object
      properties:
        currPage:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        count:
          type: integer
          format: int32
        totalPage:
          type: integer
          format: int32
        hasPre:
          type: boolean
        hasNext:
          type: boolean
        pageStr:
          type: string
        startRow:
          type: integer
          format: int32
        endRow:
          type: integer
          format: int32
      x-swagger-1-2-name: Page
    ApiInfo:
      type: object
      properties:
        operationTime:
          type: string
        version:
          type: string
        hostName:
          type: string
      x-swagger-1-2-name: ApiInfo
  securitySchemes:
    tokenHeader:
      type: apiKey
      in: header
      name: token
      description: 'Session token header. Observed on live responses from https://www.51offer.com: Access-Control-Allow-Headers includes "token" and Access-Control-Expose-Headers is "token". Unauthenticated calls to public endpoints (e.g. GET /ngGpaCalc/constants) return 200; authenticated user endpoints return the envelope with a non-200 code field. 51offer publishes no developer auth documentation.'