tessl.io Skills API
Skill discovery, reviews, and security checks.
Skill discovery, reviews, and security checks.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/tesslio-skills-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Tessl Admin Keys Skills API
version: 1.0.0
description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: Skills
description: Skill discovery, reviews, and security checks.
paths:
/v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-reviews:
get:
tags:
- Skills
description: Returns the LLM skill reviews (per skill) for a tile version.
parameters:
- schema:
type: string
in: path
name: workspaceName
required: true
- schema:
type: string
in: path
name: tileName
required: true
- schema:
type: string
in: path
name: version
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- meta
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
meta:
type: object
required:
- count
properties:
count:
type: number
data:
type: array
items:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- tile-version-skill-review
attributes:
type: object
required:
- path
- name
- description
- skillMdFingerprint
- reviewResults
- reviewScore
- reviewUpdatedAt
properties:
path:
type: string
name:
anyOf:
- type: string
- type: 'null'
description:
anyOf:
- type: string
- type: 'null'
skillMdFingerprint:
pattern: ^[0-9a-f]{64}$
type: string
reviewResults:
anyOf:
- type: object
required:
- validation
properties:
validation:
type: object
required:
- checks
- overallPassed
- errorCount
- warningCount
properties:
skillName:
type: string
skillDescription:
type: string
checks:
type: array
items:
type: object
required:
- name
- status
- message
properties:
name:
type: string
status:
anyOf:
- type: string
enum:
- passed
- type: string
enum:
- warning
- type: string
enum:
- error
message:
type: string
details:
type: object
additionalProperties:
anyOf:
- type: string
- type: number
- type: array
items:
type: string
overallPassed:
type: boolean
errorCount:
type: number
warningCount:
type: number
judges:
type: object
additionalProperties:
type: object
required:
- success
properties:
success:
type: boolean
errorMessage:
type: string
scale:
type: object
required:
- min
- max
properties:
min:
type: number
max:
type: number
evaluation:
type: object
required:
- scores
- overall_assessment
- suggestions
properties:
scores:
type: object
additionalProperties:
type: object
required:
- score
- reasoning
properties:
score:
type: number
reasoning:
type: string
overall_assessment:
type: string
suggestions:
type: array
items:
type: string
validation_skipped:
type: boolean
weightedScore:
type: number
normalizedScore:
type: number
scoring:
type: object
required:
- components
properties:
components:
type: array
items:
type: object
required:
- id
- weight
- normalized
properties:
id:
type: string
weight:
type: number
normalized:
anyOf:
- type: number
- type: 'null'
- type: 'null'
reviewScore:
anyOf:
- type: integer
- type: 'null'
reviewUpdatedAt:
anyOf:
- format: date-time
type: string
- type: 'null'
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
/v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-security-reviews:
get:
tags:
- Skills
description: Returns the Snyk security reviews (per skill) for a tile version.
parameters:
- schema:
type: string
in: path
name: workspaceName
required: true
- schema:
type: string
in: path
name: tileName
required: true
- schema:
type: string
in: path
name: version
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- meta
- data
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
meta:
type: object
required:
- count
properties:
count:
type: number
data:
type: array
items:
type: object
required:
- id
- type
- attributes
properties:
id:
format: uuid
type: string
type:
type: string
enum:
- tile-version-skill-security-review
attributes:
type: object
required:
- path
- name
- description
- skillFingerprint
- securityStatus
- securityRiskLevel
- securitySummary
- securityUpdatedAt
- securityFindings
- securityOverrideMessage
properties:
path:
type: string
name:
anyOf:
- type: string
- type: 'null'
description:
anyOf:
- type: string
- type: 'null'
skillFingerprint:
pattern: ^[0-9a-f]{64}$
type: string
securityStatus:
anyOf:
- anyOf:
- type: string
enum:
- completed
- type: string
enum:
- failed
- type: 'null'
securityRiskLevel:
anyOf:
- anyOf:
- type: string
enum:
- LOW
- type: string
enum:
- MEDIUM
- type: string
enum:
- HIGH
- type: string
enum:
- CRITICAL
- type: 'null'
securitySummary:
anyOf:
- type: string
- type: 'null'
securityUpdatedAt:
anyOf:
- format: date-time
type: string
- type: 'null'
securityFindings:
type: array
items:
type: object
required:
- severity
- code
- title
- reasoning
- issueDescription
properties:
severity:
anyOf:
- type: string
enum:
- CRITICAL
- type: string
enum:
- HIGH
- type: string
enum:
- MEDIUM
- type: string
enum:
- LOW
code:
type: string
title:
type: string
reasoning:
type: string
issueDescription:
anyOf:
- type: string
- type: 'null'
securityOverrideMessage:
anyOf:
- type: string
- type: 'null'
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
/experimental/implement-ticket-schema/schema.json:
get:
tags:
- Skills
description: Returns the JSON Schema for the implement-ticket skill input payload. Public and unauthenticated.
responses:
'200':
description: JSON Schema document
content:
application/json:
schema:
description: JSON Schema document
type: object
additionalProperties: true
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
/experimental/workspaces/{workspaceId}/skills/workspace:
post:
tags:
- Skills
description: Indexes one or more SKILL.md files from a GitHub repository using the workspace GitHub App installation. Supports public and private repositories.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- sourceUrl
- paths
- sourceRef
properties:
sourceUrl:
format: uri
type: string
paths:
minItems: 1
maxItems: 10
type: array
items:
minLength: 1
pattern: ^(?:[\w.\-]+/)*SKILL\.md$
description: Relative path to a SKILL.md file within the repository
type: string
sourceRef:
minLength: 1
type: string
parameters:
- schema:
type: string
in: path
name: workspaceId
required: true
- schema:
type: string
example: Bearer <token>
in: header
name: Authorization
required: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
required:
- registered
- skipped
- failed
- skills
- errors
properties:
registered:
type: integer
skipped:
type: integer
failed:
type: integer
skills:
type: array
items:
type: object
required:
- skillId
- skillVersionId
- path
- commitSha
properties:
skillId:
type: string
skillVersionId:
type: string
path:
type: string
commitSha:
type: string
errors:
type: array
items:
type: object
required:
- path
- message
properties:
path:
type: string
message:
type: string
'401':
description: Unauthorized
content:
application/json:
schema:
description: Unauthorized
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Unauthorized
status:
type: number
enum:
- 401
message:
type: string
'403':
description: Forbidden
content:
application/json:
schema:
description: Forbidden
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Forbidden
status:
type: number
enum:
- 403
message:
type: string
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Internal Server Error
status:
type: number
enum:
- 500
message:
type: string
/experimental/skills/analyse:
post:
tags:
- Skills
description: Scans a public repository (GitHub, GitLab, or Bitbucket) at a given branch for SKILL.md files and returns a summary.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- repoUrl
properties:
repoUrl:
format: uri
type: string
branch:
type: string
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
required:
- links
- data
- meta
properties:
links:
type: object
required:
- self
properties:
self:
format: uri
type: string
data:
type: array
items:
type: object
required:
- id
- type
- attributes
properties:
id:
type: string
type:
type: string
enum:
- skill
attributes:
type: object
required:
- path
- name
- description
properties:
path:
type: string
name:
type: string
description:
type: string
meta:
type: object
required:
- repoUrl
- branch
- totalCount
- unindexedCount
- returnedCount
- limit
properties:
repoUrl:
type: string
branch:
type: string
path:
type: string
totalCount:
type: integer
unindexedCount:
type: integer
returnedCount:
type: integer
limit:
type: integer
'404':
description: Not Found
content:
application/json:
schema:
description: Not Found
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
type: string
enum:
- Not Found
status:
type: number
enum:
- 404
message:
type: string
'500':
description: Internal Server Error
content:
application/json:
schema:
description: Internal Server Error
type: object
required:
- error
properties:
error:
type: object
required:
- title
- status
- message
properties:
title:
ty
# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tesslio/refs/heads/main/openapi/tesslio-skills-api-openapi.yml