Xano Content API

Table records (database content) CRUD and search.

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/xano-content-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 email required.

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

OpenAPI Specification

xano-content-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Xano Metadata API Groups Content API
  description: The Xano Metadata API lets you programmatically manage the contents of a Xano workspace - database tables, column schema, indexes, table records (content), files, branches, API groups and their endpoints. It is served from each Xano instance at the templated host below, appended with the `/api:meta` path, and is authenticated with scoped Bearer access tokens generated from instance settings. Separately, each user-built API group in a workspace auto-generates its own OpenAPI/Swagger document served at that group's `/api:{token}` path; those generated, per-workspace specifications are not enumerated here.
  termsOfService: https://www.xano.com/legal/
  contact:
    name: Xano Support
    url: https://docs.xano.com/xano-features/metadata-api
  version: '1.0'
servers:
- url: https://{instance}.xano.io/api:meta
  description: Per-instance Metadata API base URL. Replace {instance} with your Xano instance subdomain (for example, x1a2-b3c4-d5e6). The host varies per account and region; copy the exact instance domain from your Xano instance settings.
  variables:
    instance:
      default: your-instance
      description: Your Xano instance subdomain.
security:
- bearerAuth: []
tags:
- name: Content
  description: Table records (database content) CRUD and search.
paths:
  /workspace/{workspace_id}/table/{table_id}/content:
    get:
      operationId: listRecords
      tags:
      - Content
      summary: Browse table records (paginated).
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      - name: page
        in: query
        schema:
          type: integer
      - name: per_page
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: A paginated list of records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordList'
    post:
      operationId: createRecord
      tags:
      - Content
      summary: Create a table record.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Record'
      responses:
        '200':
          description: The created record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
  /workspace/{workspace_id}/table/{table_id}/content/bulk:
    post:
      operationId: createRecordsBulk
      tags:
      - Content
      summary: Create multiple records in one call.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    $ref: '#/components/schemas/Record'
      responses:
        '200':
          $ref: '#/components/responses/Success'
  /workspace/{workspace_id}/table/{table_id}/content/{record_id}:
    get:
      operationId: getRecord
      tags:
      - Content
      summary: Retrieve a single record.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: The record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateRecord
      tags:
      - Content
      summary: Update a single record.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      - $ref: '#/components/parameters/RecordId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Record'
      responses:
        '200':
          description: The updated record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
    delete:
      operationId: deleteRecord
      tags:
      - Content
      summary: Delete a single record.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
  /workspace/{workspace_id}/table/{table_id}/content/search:
    post:
      operationId: searchRecords
      tags:
      - Content
      summary: Search records with filtering, sorting, and pagination.
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/TableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
      responses:
        '200':
          description: Matching records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordList'
components:
  schemas:
    RecordList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Record'
        itemsReceived:
          type: integer
        itemsTotal:
          type: integer
        pageTotal:
          type: integer
        curPage:
          type: integer
        nextPage:
          type: integer
          nullable: true
        prevPage:
          type: integer
          nullable: true
    SearchRequest:
      type: object
      properties:
        page:
          type: integer
        per_page:
          type: integer
        sort:
          type: object
          additionalProperties:
            type: string
        search:
          type: array
          items:
            type: object
    Record:
      type: object
      additionalProperties: true
      description: A table record; properties correspond to the table's columns.
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        payload:
          nullable: true
  responses:
    Success:
      description: The operation succeeded.
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    TableId:
      name: table_id
      in: path
      required: true
      schema:
        type: integer
    WorkspaceId:
      name: workspace_id
      in: path
      required: true
      schema:
        type: integer
    RecordId:
      name: record_id
      in: path
      required: true
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Scoped Metadata API access token generated from your Xano instance settings (Instances > Metadata API > Manage Access Tokens). Sent as `Authorization: Bearer <token>`.'