Passport Development
trypostit/trypost
Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.
Baserow API integration with managed API key authentication.
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .claude/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-apiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/baserow-api .agents/skills/baserow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .agents/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/baserow-api .cursor/skills/baserow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .cursor/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/baserow-api--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/baserow-api .gemini/skills/baserow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .gemini/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills baserowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/baserow-api .github/skills/baserow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .github/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill baserow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills baserow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/baserow-api .opencode/skills/baserow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "baserow" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/baserow-api into .opencode/skills/baserow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "baserow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
baserowBaserow 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. 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pythoncurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gateway.maton.aictrl.maton.aiapi.baserow.ioconnect.maton.aihttpbin.orgfiles.baserow.ioAlso links to:
baserow.iomaton.aidiscord.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MATON_API_KEYAPI_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires network access and valid Maton API key
From compatibility in the SKILL.md frontmatter.
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.
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.
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.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 989 words, ~4,907 tokens.
.claude/skills/baserow/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Access the Baserow API with managed API key authentication. Manage database rows with full CRUD operations, filtering, sorting, and batch operations.
# 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))
EOFhttps://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.
All requests require the Maton API key in the Authorization header:
Authorization: Bearer $MATON_API_KEYEnvironment Variable: Set your API key as MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"Manage your Baserow API key connections at https://ctrl.maton.ai.
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))
EOFpython <<'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))
EOFpython <<'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))
EOFResponse:
{
"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.
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))
EOFIf you have multiple Baserow connections, specify which one to use with the Maton-Connection header:
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))
EOFIf omitted, the gateway uses the default (oldest) active connection.
GET /baserow/api/database/rows/table/{table_id}/Query parameters:
user_field_names=true - Use human-readable field names instead of field_123 IDssize - 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 fieldsinclude - Comma-separated field names to includeexclude - Comma-separated field names to excludeResponse:
{
"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 /baserow/api/database/rows/table/{table_id}/{row_id}/Response:
{
"id": 1,
"order": "1.00000000000000000000",
"field_7456198": "Alice Johnson",
"field_7456201": "alice.johnson@example.com",
"field_7456215": []
}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:
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:
{
"id": 6,
"order": "6.00000000000000000000",
"field_7456198": "New User",
"field_7456201": "newuser@example.com",
"field_7456215": []
}PATCH /baserow/api/database/rows/table/{table_id}/{row_id}/
Content-Type: application/json
{
"field_7456198": "Updated Name"
}Response:
{
"id": 1,
"order": "1.00000000000000000000",
"field_7456198": "Updated Name",
"field_7456201": "alice.johnson@example.com",
"field_7456215": []
}DELETE /baserow/api/database/rows/table/{table_id}/{row_id}/Returns HTTP 204 No Content on success.
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:
{
"items": [
{"id": 7, "order": "7.00000000000000000000", "field_7456198": "User 1", ...},
{"id": 8, "order": "8.00000000000000000000", "field_7456198": "User 2", ...}
]
}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:
{
"items": [
{"id": 7, "order": "7.00000000000000000000", "field_7456198": "Updated User 1", ...},
{"id": 8, "order": "8.00000000000000000000", "field_7456198": "Updated User 2", ...}
]
}POST /baserow/api/database/rows/table/{table_id}/batch-delete/
Content-Type: application/json
{
"items": [7, 8]
}Returns HTTP 204 No Content on success.
GET /baserow/api/database/fields/table/{table_id}/Response:
[
{
"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
}
]Get all tables across all databases accessible by your token.
GET /baserow/api/database/tables/all-tables/Response:
[
{
"id": 863922,
"name": "Assignees",
"order": 0,
"database_id": 419329
},
{
"id": 863923,
"name": "Tasks",
"order": 1,
"database_id": 419329
}
]Reposition a row within a table.
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:
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))
EOFResponse:
{
"id": 5,
"order": "2.50000000000000000000",
"field_7456198": "Moved User",
"field_7456201": "moved@example.com"
}Upload a file from a publicly accessible URL.
POST /baserow/api/user-files/upload-via-url/
Content-Type: application/json
{
"url": "https://example.com/image.png"
}Example:
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))
EOFResponse:
{
"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 a file directly using multipart form data.
POST /baserow/api/user-files/upload-file/
Content-Type: multipart/form-dataExample:
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.
After uploading, use the file object in a file field:
POST /baserow/api/database/rows/table/{table_id}/?user_field_names=true
Content-Type: application/json
{
"Attachment": [{"name": "abc123_image.png"}]
}Use filter parameters to query rows:
filter__{field}__{operator}={value}With user_field_names=true:
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Assignee+Name__contains=AliceMultiple filters use AND logic by default. Use filter_type=OR to change to OR logic.
| Operator | Description |
|---|---|
equal | Exact match |
not_equal | Not equal |
contains | Contains substring |
contains_not | Does not contain substring |
contains_word | Contains whole word |
doesnt_contain_word | Does not contain whole word |
length_is_lower_than | Text length is less than value |
| Operator | Description |
|---|---|
higher_than | Greater than |
higher_than_or_equal | Greater than or equal |
lower_than | Less than |
lower_than_or_equal | Less than or equal |
is_even_and_whole | Value is even and whole number |
| Operator | Description |
|---|---|
date_is | Date equals (use with timezone) |
date_is_not | Date does not equal |
date_is_before | Date is before |
date_is_on_or_before | Date is on or before |
date_is_after | Date is after |
date_is_on_or_after | Date is on or after |
date_is_within | Date is within period |
date_equal | Date equals (legacy) |
date_not_equal | Date does not equal (legacy) |
date_equals_today | Date is today |
date_before_today | Date is before today |
date_after_today | Date is after today |
date_within_days | Date within X days |
date_within_weeks | Date within X weeks |
date_within_months | Date within X months |
date_equals_days_ago | Date equals X days ago |
date_equals_weeks_ago | Date equals X weeks ago |
date_equals_months_ago | Date equals X months ago |
date_equals_years_ago | Date equals X years ago |
date_equals_day_of_month | Date equals specific day of month |
date_before_or_equal | Date is before or equal (legacy) |
date_after_or_equal | Date is after or equal (legacy) |
| Operator | Description |
|---|---|
boolean | Boolean equals (true/false) |
| Operator | Description |
|---|---|
link_row_has | Has linked row with ID |
link_row_has_not | Does not have linked row with ID |
link_row_contains | Linked row contains text |
link_row_not_contains | Linked row does not contain text |
| Operator | Description |
|---|---|
single_select_equal | Single select equals option ID |
single_select_not_equal | Single select does not equal option ID |
single_select_is_any_of | Single select is any of option IDs |
single_select_is_none_of | Single select is none of option IDs |
| Operator | Description |
|---|---|
multiple_select_has | Has option selected |
multiple_select_has_not | Does not have option selected |
multiple_select_is_exactly | Exactly these options selected |
| Operator | Description |
|---|---|
multiple_collaborators_has | Has collaborator |
multiple_collaborators_has_not | Does not have collaborator |
| Operator | Description |
|---|---|
filename_contains | File name contains |
has_file_type | Has file of type (image, document) |
files_lower_than | Number of files less than |
| Operator | Description |
|---|---|
empty | Field is empty (value: true) |
not_empty | Field is not empty (value: true) |
| Operator | Description |
|---|---|
user_is | User field equals user ID |
user_is_not | User field does not equal user ID |
Text contains:
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Name__contains=JohnDate within last 7 days:
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Created__date_within_days=7Multiple filters (AND):
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter__Status__single_select_equal=1&filter__Priority__higher_than=3Multiple filters (OR):
GET /baserow/api/database/rows/table/{table_id}/?user_field_names=true&filter_type=OR&filter__Status__equal=Active&filter__Status__equal=PendingUse order_by parameter:
# 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+NameUse size and page parameters:
GET /baserow/api/database/rows/table/{table_id}/?size=25&page=2Response includes next and previous URLs:
{
"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": [...]
}// 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);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']}")field_{id} format; use user_field_names=true for human-readable namesrecXXX format)| Status | Name | Description |
|---|---|---|
| 200 | Ok | Request completed successfully |
| 204 | No Content | Success (for DELETE operations) |
| 400 | Bad Request | The request contains invalid values or the JSON could not be parsed |
| 401 | Unauthorized | Invalid or missing database token |
| 404 | Not Found | Row or table not found |
| 413 | Request Entity Too Large | The request exceeded the maximum allowed payload size |
| 429 | Too Many Requests | Rate limited (10 concurrent requests on cloud) |
| 500 | Internal Server Error | The server encountered an unexpected condition |
| 502 | Bad Gateway | Baserow is restarting or an unexpected outage is in progress |
| 503 | Service Unavailable | The server could not process your request in time |
MATON_API_KEY environment variable is set:echo $MATON_API_KEYpython <<'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))
EOFEnsure your URL path starts with baserow. For example:
https://gateway.maton.ai/baserow/api/database/rows/table/{table_id}/https://gateway.maton.ai/api/database/rows/table/{table_id}/© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in skills/baserow-api of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Baserow this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.9k | Automated safety check: Pass | MIT | |
| Passport Developmenttrypostit/trypost | 685 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Soundcloud API Integrationsoundcloud/api | 259 | — | ~787 | Automated safety check: Pass | None | |
| MCP API Key AuthenticationYourdaylight/stock_datasource | 189 | — | ~1.2k | Automated safety check: Pass | MIT | |
| API Security Designvinayaklatthe/microsoft-security-skills | 175 | — | ~2.2k | Automated safety check: Pass | MIT | |
| OmniRoute API Keysdiegosouzapw/OmniRoute | 74k | — | ~1.4k | Automated safety check: Pass | MIT |
trypostit/trypost
Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.
soundcloud/api
Integrates applications with the SoundCloud HTTP API using OAuth 2.1, OpenAPI, and developer docs.
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.
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…
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.
veniceai/skills
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
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.
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.
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.
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.
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.
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.
Categories
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.
Baserow fits situations like: users want to read; delete Baserow database rows; query data with filters.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.