Agent skill

Baserow

by LeoYeAI in LeoYeAI/openclaw-master-skills

Baserow API integration with managed API key authentication.

MITAuto-check passedBackend & APIs

Install Baserow

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/baserow-api .claude/skills/baserow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
baserow
GitHub stars
2.2k
Token cost
~4.9k tokens
SKILL.md length
989 words
Files
3
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

Baserow API integration with managed API key authentication.

  • Works in 3 steps: Sign in or create an account at maton.ai → Go to maton.ai/settings → Copy your API key
  • Users want to read
  • SKILL.md covers Quick Start, Base URL, Authentication and Connection Management, plus 7 more sections
  • Calls python and curl; reaches gateway.maton.ai and ctrl.maton.ai; needs MATON_API_KEY and API_KEY

What it does

Baserow is an agent skill from LeoYeAI/openclaw-master-skills. Baserow API integration with managed API key authentication. Manage database rows, fields, and tables. Use this skill when users want to read, create, update, or delete Baserow database rows, or query data with filters. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).

Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `_meta.json`). Compatibility notes: Requires network access and valid Maton API key

It sits in Backend & APIs, covering Microservices, Third-party API integration and Authentication. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

When your agent uses it

  • Users want to read
  • Delete Baserow database rows
  • Query data with filters

Example prompts

  • “/baserow”

Requirements

  • Python 3
  • A credential in MATON_API_KEY
  • A credential in YOUR_API_KEY
  • Compatibility (from SKILL.md): Requires network access and valid Maton API key

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • gateway.maton.ai
    • ctrl.maton.ai
    • api.baserow.io
    • connect.maton.ai
    • httpbin.org
    • files.baserow.io

    Also links to:

    • baserow.io
    • maton.ai
    • discord.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • MATON_API_KEY
    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires network access and valid Maton API key

    From compatibility in the SKILL.md frontmatter.

Context cost

Baserow loads about 4.9k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 989 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~4.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 989 words, ~4,907 tokens.

Download SKILL.mdSave it as .claude/skills/baserow/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
baserow
description
Baserow API integration with managed API key authentication. Manage database rows, fields, and tables. Use this skill when users want to read, create, update, or delete Baserow database rows, or query data with filters. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
compatibility
Requires network access and valid Maton API key
metadata.author
maton
metadata.version
1.0

Baserow

Access the Baserow API with managed API key authentication. Manage database rows with full CRUD operations, filtering, sorting, and batch operations.

Quick Start

bash
# List rows from a table
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/baserow/api/database/rows/table/{table_id}/?user_field_names=true')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://gateway.maton.ai/baserow/{native-api-path}

Replace {native-api-path} with the actual Baserow API endpoint path. The gateway proxies requests to api.baserow.io and automatically injects your API token.

Authentication

All requests require the Maton API key in the Authorization header:

Authorization: Bearer $MATON_API_KEY

Environment Variable: Set your API key as MATON_API_KEY:

bash
export MATON_API_KEY="YOUR_API_KEY"
Getting Your API Key
  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key

Connection Management

Manage your Baserow API key connections at https://ctrl.maton.ai.

List Connections
bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=baserow&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Create Connection
bash
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'baserow'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Get Connection
bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

json
{
  "connection": {
    "connection_id": "90a5d047-b856-4577-ac05-faccaabf8989",
    "status": "ACTIVE",
    "creation_time": "2026-03-02T12:01:29.812801Z",
    "last_updated_time": "2026-03-02T12:02:17.932675Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "baserow",
    "metadata": {},
    "method": "API_KEY"
  }
}

Open the returned url in a browser to enter your Baserow database token.

Delete Connection
bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Specifying Connection

If you have multiple Baserow connections, specify which one to use with the Maton-Connection header:

bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://gateway.maton.ai/baserow/api/database/rows/table/123/')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '90a5d047-b856-4577-ac05-faccaabf8989')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

If omitted, the gateway uses the default (oldest) active connection.

API Reference

Rows
List Rows
bash
GET /baserow/api/database/rows/table/{table_id}/

Query parameters:

  • user_field_names=true - Use human-readable field names instead of field_123 IDs
  • size - Number of rows per page (default: 100)
  • page - Page number (1-indexed)
  • order_by - Field name to sort by (prefix with - for descending)
  • filter__{field}__{operator} - Filter rows (see Filtering section)
  • search - Search query across all fields
  • include - Comma-separated field names to include
  • exclude - Comma-separated field names to exclude

Response:

json
{
  "count": 5,
  "next": "http://api.baserow.io/api/database/rows/table/123/?page=2&size=2",
  "previous": null,
  "results": [
    {
      "id": 1,
      "order": "1.00000000000000000000",
      "Assignee Name": "Alice Johnson",
      "Email": "alice.johnson@example.com",
      "Tasks": []
    }
  ]
}
Get Row
bash
GET /baserow/api/database/rows/table/{table_id}/{row_id}/

Response:

json
{
  "id": 1,
  "order": "1.00000000000000000000",
  "field_7456198": "Alice Johnson",
  "field_7456201": "alice.johnson@example.com",
  "field_7456215": []
}
Create Row
bash
POST /baserow/api/database/rows/table/{table_id}/
Content-Type: application/json

{
  "field_7456198": "New User",
  "field_7456201": "newuser@example.com"
}

Or with user field names:

bash
POST /baserow/api/database/rows/table/{table_id}/?user_field_names=true
Content-Type: application/json

{
  "Assignee Name": "New User",
  "Email": "newuser@example.com"
}

Response:

json
{
  "id": 6,
  "order": "6.00000000000000000000",
  "field_7456198": "New User",
  "field_7456201": "newuser@example.com",
  "field_7456215": []
}
Update Row
bash
PATCH /baserow/api/database/rows/table/{table_id}/{row_id}/
Content-Type: application/json

{
  "field_7456198": "Updated Name"
}

Response:

json
{
  "id": 1,
  "order": "1.00000000000000000000",
  "field_7456198": "Updated Name",
  "field_7456201": "alice.johnson@example.com",
  "field_7456215": []
}
Delete Row
bash
DELETE /baserow/api/database/rows/table/{table_id}/{row_id}/

Returns HTTP 204 No Content on success.


Batch Operations
Batch Create Rows
bash
POST /baserow/api/database/rows/table/{table_id}/batch/
Content-Type: application/json

{
  "items": [
    {"field_7456198": "User 1", "field_7456201": "user1@example.com"},
    {"field_7456198": "User 2", "field_7456201": "user2@example.com"}
  ]
}

Response:

json
{
  "items": [
    {"id": 7, "order": "7.00000000000000000000", "field_7456198": "User 1", ...},
    {"id": 8, "order": "8.00000000000000000000", "field_7456198": "User 2", ...}
  ]
}
Batch Update Rows
bash
PATCH /baserow/api/database/rows/table/{table_id}/batch/
Content-Type: application/json

{
  "items": [
    {"id": 7, "field_7456198": "Updated User 1"},
    {"id": 8, "field_7456198": "Updated User 2"}
  ]
}

Response:

json
{
  "items": [
    {"id": 7, "order": "7.00000000000000000000", "field_7456198": "Updated User 1", ...},
    {"id": 8, "order": "8.00000000000000000000", "field_7456198": "Updated User 2", ...}
  ]
}
Batch Delete Rows
bash
POST /baserow/api/database/rows/table/{table_id}/batch-delete/
Content-Type: application/json

{
  "items": [7, 8]
}

Returns HTTP 204 No Content on success.


Fields
List Fields
bash
GET /baserow/api/database/fields/table/{table_id}/

Response:

json
[
  {
    "id": 7456198,
    "table_id": 863922,
    "name": "Assignee Name",
    "order": 0,
    "type": "text",
    "primary": true,
    "read_only": false,
    "description": null
  },
  {
    "id": 7456201,
    "table_id": 863922,
    "name": "Email",
    "order": 1,
    "type": "text",
    "primary": false
  }
]

Tables
List All Tables

Get all tables across all databases accessible by your token.

bash
GET /baserow/api/database/tables/all-tables/

Response:

json
[
  {
    "id": 863922,
    "name": "Assignees",
    "order": 0,
    "database_id": 419329
  },
  {
    "id": 863923,
    "name": "Tasks",
    "order": 1,
    "database_id": 419329
  }
]

Move Row

Reposition a row within a table.

bash
PATCH /baserow/api/database/rows/table/{table_id}/{row_id}/move/

Query parameters:

  • before_id - Row ID to move before (if omitted, moves to end)

Example - Move row to before row 3:

bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request(
    'https://gateway.maton.ai/baserow/api/database/rows/table/863922/5/move/?before_id=3',
    method='PATCH'
)
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

json
{
  "id": 5,
  "order": "2.50000000000000000000",
  "field_7456198": "Moved User",
  "field_7456201": "moved@example.com"
}

File Uploads
Upload File via URL

Upload a file from a publicly accessible URL.

bash
POST /baserow/api/user-files/upload-via-url/
Content-Type: application/json

{
  "url": "https://example.com/image.png"
}

Example:

bash
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'url': 'https://httpbin.org/image/png'}).encode()
req = urllib.request.Request(
    'https://gateway.maton.ai/baserow/api/user-files/upload-via-url/',
    data=data,
    method='POST'
)
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

json
{
  "url": "https://files.baserow.io/user_files/...",
  "thumbnails": {
    "tiny": {"url": "...", "width": 21, "height": 21},
    "small": {"url": "...", "width": 48, "height": 48},
    "card_cover": {"url": "...", "width": 300, "height": 160}
  },
  "visible_name": "image.png",
  "name": "abc123_image.png",
  "size": 8090,
  "mime_type": "image/png",
  "is_image": true,
  "image_width": 100,
  "image_height": 100,
  "uploaded_at": "2026-03-02T12:00:00Z"
}
Upload File (Multipart)

Upload a file directly using multipart form data.

bash
POST /baserow/api/user-files/upload-file/
Content-Type: multipart/form-data

Example:

bash
curl -X POST "https://gateway.maton.ai/baserow/api/user-files/upload-file/" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -F "file=@/path/to/file.pdf"

Response: Same format as upload-via-url.

Using Uploaded Files in Rows

After uploading, use the file object in a file field:

bash
POST /baserow/api/database/rows/table/{table_id}/?user_field_names=true
Content-Type: application/json

{
  "Attachment": [{"name": "abc123_image.png"}]
}

Filtering

Use filter parameters to query rows:

filter__{field}__{operator}={value}

With user_field_names=true:

bash
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Assignee+Name__contains=Alice

Multiple filters use AND logic by default. Use filter_type=OR to change to OR logic.

Filter Operators
Text Filters
OperatorDescription
equalExact match
not_equalNot equal
containsContains substring
contains_notDoes not contain substring
contains_wordContains whole word
doesnt_contain_wordDoes not contain whole word
length_is_lower_thanText length is less than value
Numeric Filters
OperatorDescription
higher_thanGreater than
higher_than_or_equalGreater than or equal
lower_thanLess than
lower_than_or_equalLess than or equal
is_even_and_wholeValue is even and whole number
Date Filters
OperatorDescription
date_isDate equals (use with timezone)
date_is_notDate does not equal
date_is_beforeDate is before
date_is_on_or_beforeDate is on or before
date_is_afterDate is after
date_is_on_or_afterDate is on or after
date_is_withinDate is within period
date_equalDate equals (legacy)
date_not_equalDate does not equal (legacy)
date_equals_todayDate is today
date_before_todayDate is before today
date_after_todayDate is after today
date_within_daysDate within X days
date_within_weeksDate within X weeks
date_within_monthsDate within X months
date_equals_days_agoDate equals X days ago
date_equals_weeks_agoDate equals X weeks ago
date_equals_months_agoDate equals X months ago
date_equals_years_agoDate equals X years ago
date_equals_day_of_monthDate equals specific day of month
date_before_or_equalDate is before or equal (legacy)
date_after_or_equalDate is after or equal (legacy)
Boolean Filters
OperatorDescription
booleanBoolean equals (true/false)
OperatorDescription
link_row_hasHas linked row with ID
link_row_has_notDoes not have linked row with ID
link_row_containsLinked row contains text
link_row_not_containsLinked row does not contain text
Show full SKILL.md (389 more words)Show less
Single Select Filters
OperatorDescription
single_select_equalSingle select equals option ID
single_select_not_equalSingle select does not equal option ID
single_select_is_any_ofSingle select is any of option IDs
single_select_is_none_ofSingle select is none of option IDs
Multiple Select Filters
OperatorDescription
multiple_select_hasHas option selected
multiple_select_has_notDoes not have option selected
multiple_select_is_exactlyExactly these options selected
Collaborator Filters
OperatorDescription
multiple_collaborators_hasHas collaborator
multiple_collaborators_has_notDoes not have collaborator
File Filters
OperatorDescription
filename_containsFile name contains
has_file_typeHas file of type (image, document)
files_lower_thanNumber of files less than
Empty/Not Empty Filters
OperatorDescription
emptyField is empty (value: true)
not_emptyField is not empty (value: true)
User Filters
OperatorDescription
user_isUser field equals user ID
user_is_notUser field does not equal user ID
Filter Examples

Text contains:

bash
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Name__contains=John

Date within last 7 days:

bash
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Created__date_within_days=7

Multiple filters (AND):

bash
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Status__single_select_equal=1&filter__Priority__higher_than=3

Multiple filters (OR):

bash
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter_type=OR&filter__Status__equal=Active&filter__Status__equal=Pending

Sorting

Use order_by parameter:

bash
# Sort ascending by field name
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&order_by=Assignee+Name

# Sort descending (prefix with -)
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&order_by=-Assignee+Name

Pagination

Use size and page parameters:

bash
GET /baserow/api/database/rows/table/{table_id}/?size=25&page=2

Response includes next and previous URLs:

json
{
  "count": 100,
  "next": "http://api.baserow.io/api/database/rows/table/123/?page=3&size=25",
  "previous": "http://api.baserow.io/api/database/rows/table/123/?page=1&size=25",
  "results": [...]
}

Code Examples

JavaScript
javascript
// List rows with user field names
const response = await fetch(
  'https://gateway.maton.ai/baserow/api/database/rows/table/863922/?user_field_names=true',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);
const data = await response.json();
console.log(data.results);
Python
python
import os
import requests

# Create a row
response = requests.post(
    'https://gateway.maton.ai/baserow/api/database/rows/table/863922/?user_field_names=true',
    headers={
        'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'Assignee Name': 'New User',
        'Email': 'newuser@example.com'
    }
)
row = response.json()
print(f"Created row ID: {row['id']}")

Notes

  • Connection uses API_KEY authentication (database token), not OAuth
  • By default, fields are returned as field_{id} format; use user_field_names=true for human-readable names
  • Row IDs are integers (not strings like Airtable's recXXX format)
  • Table IDs can be found in the Baserow UI URL or API documentation
  • Database tokens grant access only to database row endpoints, not admin endpoints
  • Cloud version has a limit of 10 concurrent API requests

Error Handling

StatusNameDescription
200OkRequest completed successfully
204No ContentSuccess (for DELETE operations)
400Bad RequestThe request contains invalid values or the JSON could not be parsed
401UnauthorizedInvalid or missing database token
404Not FoundRow or table not found
413Request Entity Too LargeThe request exceeded the maximum allowed payload size
429Too Many RequestsRate limited (10 concurrent requests on cloud)
500Internal Server ErrorThe server encountered an unexpected condition
502Bad GatewayBaserow is restarting or an unexpected outage is in progress
503Service UnavailableThe server could not process your request in time
Troubleshooting: API Key Issues
  1. Check that the MATON_API_KEY environment variable is set:
bash
echo $MATON_API_KEY
  1. Verify the API key is valid by listing connections:
bash
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF
Troubleshooting: Invalid App Name

Ensure your URL path starts with baserow. For example:

  • Correct: https://gateway.maton.ai/baserow/api/database/rows/table/{table_id}/
  • Incorrect: https://gateway.maton.ai/api/database/rows/table/{table_id}/

Resources

© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/baserow-api of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • LICENSE.txt
  • _meta.json

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Baserow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Baserow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Baserow this skillLeoYeAI/openclaw-master-skills2.2k—~4.9kAutomated safety check: PassMIT
Passport Developmenttrypostit/trypost685—~1.9kAutomated safety check: PassMIT
Soundcloud API Integrationsoundcloud/api259—~787Automated safety check: PassNone
MCP API Key AuthenticationYourdaylight/stock_datasource189—~1.2kAutomated safety check: PassMIT
API Security Designvinayaklatthe/microsoft-security-skills175—~2.2kAutomated safety check: PassMIT
OmniRoute API Keysdiegosouzapw/OmniRoute74k—~1.4kAutomated safety check: PassMIT

Similar skills

  • Passport Development

    trypostit/trypost

    Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.

    685 GitHub stars~1.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • Integrates applications with the SoundCloud HTTP API using OAuth 2.1, OpenAPI, and developer docs.

    259 GitHub stars~787 tokensUpdated 8 days ago
    Backend & APIsAuto-check passed
  • MCP API Key Authentication

    Yourdaylight/stock_datasource

    Sets up and troubleshoots MCP API key authentication for a stock data service, covering key creation, client configuration and per-tool usage statistics.

    189 GitHub stars~1.2k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • API Security Design

    vinayaklatthe/microsoft-security-skills

    Guidance for designing secure APIs on Azure - authentication, authorization, gateway controls, input validation, rate limiting, secret management, and runtime threat detection - aligned to OWASP API…

    175 GitHub stars~2.2k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • OmniRoute API Keys

    diegosouzapw/OmniRoute

    Documents the OmniRoute REST endpoints for creating, listing, updating, regenerating and deleting API keys, with per-key scopes, spending limits, expiry and device lists.

    74k GitHub stars~1.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • Venice API Keys

    veniceai/skills

    Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.

    143 GitHub stars~3.8k tokensUpdated 3 days ago
    Backend & APIsAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,235 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Baserow

What does Baserow do?

Baserow API integration with managed API key authentication. Baserow is an agent skill from LeoYeAI/openclaw-master-skills. Baserow API integration with managed API key authentication.

When should I use Baserow?

Baserow fits situations like: users want to read; delete Baserow database rows; query data with filters.

How do I install Baserow in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a claude-code`. Or copy the skill folder (skills/baserow-api in LeoYeAI/openclaw-master-skills) into .claude/skills/baserow in your project. Claude Code loads it when a task matches its description.

How do I install Baserow in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a codex`. Or copy the skill folder (skills/baserow-api in LeoYeAI/openclaw-master-skills) into .agents/skills/baserow in your project. Codex loads it when a task matches its description.

Can I use Baserow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/baserow, .gemini/skills/baserow, .github/skills/baserow and .opencode/skills/baserow in your project.

What does Baserow need to run?

Going by SKILL.md and its folder, Baserow needs the command-line tools its instructions call (python and curl) and credentials named MATON_API_KEY and API_KEY. Our summary lists: Python 3; A credential in MATON_API_KEY; A credential in YOUR_API_KEY. Compatibility (from SKILL.md): Requires network access and valid Maton API key.

Does Baserow access the network?

SKILL.md names 9 domains. In commands or code: gateway.maton.ai, ctrl.maton.ai, api.baserow.io, connect.maton.ai, httpbin.org and files.baserow.io; the agent is likely to contact these when it follows the instructions. As links in the text: baserow.io, maton.ai and discord.com. This is read from the text; nothing was executed.

Is Baserow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Baserow use?

Baserow is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Baserow use?

About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Baserow?

Skills that share tags, products or a category with Baserow: Passport Development (trypostit/trypost, 685 stars), Soundcloud API Integration (soundcloud/api, 259 stars), MCP API Key Authentication (Yourdaylight/stock_datasource, 189 stars) and API Security Design (vinayaklatthe/microsoft-security-skills, 175 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Baserow?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,160 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.