Skip to content

Not support for API version 3 #13

Closed

Description

@lamquangphuc

For get_record, we have respone as below

Image

But your client.py get list attribute.

Image

For insert_record

Image

Could you please check it again for this ?

Activity

  1. github-actions commented on Feb 5, 2026

    @github-actions

    🤖 AI Analysis for NocoDB Simple Client

    Technical Summary of GitHub Issue: "Not support for API version 3"

    Technical Requirements and Constraints

    1. API Version Compatibility:

      • The issue highlights a lack of support for API version 3 in the get_record and insert_record endpoints.
      • The responses for both methods seem to demonstrate anomalies or unexpected behaviors, which may stem from the incompatibility with version 3.
    2. Requirement to Validate API Compliance:

      • The functionality of get_record and insert_record methods needs to be reviewed against the specifications of API version 3 to ensure proper operation.
    3. Constraint:

      • Any fixes must maintain backward compatibility with previous API versions (such as version 2 or 1), unless explicitly stated that version 3 introduces breaking changes.

    Implementation Considerations

    • API Response Format: Analyze the response data structure provided during interaction with version 3 and compare it with expected outputs. There may

    Impact Assessment

    This issue/PR affects the NocoDB Simple Client Python library.


    This summary was automatically generated by AI to help with triage and may not be 100% accurate.

  2. karlspace commented on Mar 25, 2026

    @karlspace
    Contributor

    Hi! 👋 Thank you very much for reporting this — you're absolutely right!

    After investigating the NocoDB v3 OpenAPI specifications, we found that the v3 API uses fundamentally different response and request formats compared to v2. The key differences that were causing the issues you observed:

    Response differences:

    • Records list uses "records" key instead of "list"
    • Record ID field is "id" (lowercase) instead of "Id"
    • Field data is wrapped in a "fields" object: {"id": 1, "fields": {"Name": "John"}}
    • Pagination uses cursor-based next/prev tokens instead of pageInfo

    Request differences:

    • Create/update data must be wrapped in "fields": {"fields": {"Name": "John"}}
    • Delete uses lowercase "id": {"id": 42}

    We've implemented a fix in PR #14 that adds ResponseAdapter and RequestAdapter classes to transparently handle these format differences. The client now correctly:

    • Parses v3 responses and normalizes them to a consistent format
    • Formats v3 requests with the proper "fields" wrapper
    • Handles v3 cursor-based pagination

    All existing v2 behavior remains completely unchanged (passthrough pattern), and the fix is covered by 27 new tests plus all 481 existing tests passing.

    Thank you again for helping us improve the library! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions