HeyClaude Submissions API
The Submissions API from HeyClaude — 1 operation(s) for submissions.
The Submissions API from HeyClaude — 1 operation(s) for submissions.
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/heyclau-de:heyclau-de-submissions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: HeyClaude Submissions API
version: 1.0.0
description: Read-only registry, distribution feeds, and tightly scoped dynamic endpoints. Public registry publishing is not exposed through the API.
servers:
- url: https://heyclau.de
security:
- OriginCheck: []
tags:
- name: Submissions
paths:
/api/submissions/preflight:
post:
tags:
- Submissions
summary: Preflight a content submission draft
description: Runs read-only schema, duplicate, source, package, and safety/privacy checks before a contributor opens a single-entry content PR through the private submission gate. This endpoint never creates issues, labels, branches, pull requests, registry content, or package artifacts.
requestBody:
content:
application/json:
schema:
type: object
properties:
fields:
type: object
additionalProperties: {}
default: {}
honeypot:
type: string
maxLength: 256
default: ''
responses:
'200':
description: Request accepted.
content:
application/json:
schema:
anyOf:
- type: object
properties:
ok:
type: boolean
enum:
- true
category:
type: string
slug:
type: string
schema:
type: object
properties:
ok:
type: boolean
skipped:
type: boolean
errors:
type: array
items:
type: string
maxLength: 500
maxItems: 32
warnings:
type: array
items:
type: string
maxLength: 500
maxItems: 32
fields:
type: object
additionalProperties: {}
required:
- ok
- skipped
- errors
- warnings
- fields
risk:
type: object
properties:
tier:
type: string
policyDecision:
type: string
policyMatrix:
type: object
additionalProperties: {}
reviewFlags:
type: array
items:
type: string
maxLength: 120
maxItems: 32
classificationWarnings:
type: array
items: {}
maxItems: 32
required:
- policyMatrix
- reviewFlags
- classificationWarnings
expectedNotes:
type: object
properties:
safety:
type: boolean
privacy:
type: boolean
reasons:
type: array
items:
type: string
maxLength: 500
maxItems: 8
required:
- safety
- privacy
- reasons
blockers:
type: array
items:
type: object
properties:
code:
type: string
maxLength: 80
message:
type: string
maxLength: 500
required:
- code
- message
maxItems: 24
warnings:
type: array
items:
type: object
properties:
code:
type: string
maxLength: 80
message:
type: string
maxLength: 500
required:
- code
- message
maxItems: 24
duplicates:
type: array
items:
type: object
properties:
key:
type: string
maxLength: 160
category:
type: string
maxLength: 80
slug:
type: string
maxLength: 160
title:
type: string
maxLength: 240
url:
type: string
maxLength: 2048
format: uri
reasons:
type: array
items:
type: string
maxLength: 80
maxItems: 8
reasonLabels:
type: array
items:
type: string
maxLength: 120
maxItems: 8
required:
- key
- category
- slug
- title
- url
- reasons
maxItems: 5
nextAction:
type: object
properties:
label:
type: string
maxLength: 160
url:
type: string
maxLength: 4096
format: uri
required:
- label
valid:
type: boolean
enum:
- true
routeSuggestion:
type: string
enum:
- submit_pr
prPreview:
type: object
properties:
title:
type: string
maxLength: 300
targetPath:
type: string
maxLength: 240
branchHint:
type: string
maxLength: 200
baseRef:
type: string
maxLength: 120
body:
type: string
maxLength: 32000
required:
- title
- targetPath
- branchHint
- baseRef
- body
required:
- ok
- category
- slug
- schema
- risk
- expectedNotes
- blockers
- warnings
- duplicates
- nextAction
- valid
- routeSuggestion
- prPreview
- type: object
properties:
ok:
type: boolean
enum:
- true
category:
type: string
slug:
type: string
schema:
type: object
properties:
ok:
type: boolean
skipped:
type: boolean
errors:
type: array
items:
type: string
maxLength: 500
maxItems: 32
warnings:
type: array
items:
type: string
maxLength: 500
maxItems: 32
fields:
type: object
additionalProperties: {}
required:
- ok
- skipped
- errors
- warnings
- fields
risk:
type: object
properties:
tier:
type: string
policyDecision:
type: string
policyMatrix:
type: object
additionalProperties: {}
reviewFlags:
type: array
items:
type: string
maxLength: 120
maxItems: 32
classificationWarnings:
type: array
items: {}
maxItems: 32
required:
- policyMatrix
- reviewFlags
- classificationWarnings
expectedNotes:
type: object
properties:
safety:
type: boolean
privacy:
type: boolean
reasons:
type: array
items:
type: string
maxLength: 500
maxItems: 8
required:
- safety
- privacy
- reasons
blockers:
type: array
items:
type: object
properties:
code:
type: string
maxLength: 80
message:
type: string
maxLength: 500
required:
- code
- message
maxItems: 24
warnings:
type: array
items:
type: object
properties:
code:
type: string
maxLength: 80
message:
type: string
maxLength: 500
required:
- code
- message
maxItems: 24
duplicates:
type: array
items:
type: object
properties:
key:
type: string
maxLength: 160
category:
type: string
maxLength: 80
slug:
type: string
maxLength: 160
title:
type: string
maxLength: 240
url:
type: string
maxLength: 2048
format: uri
reasons:
type: array
items:
type: string
maxLength: 80
maxItems: 8
reasonLabels:
type: array
items:
type: string
maxLength: 120
maxItems: 8
required:
- key
- category
- slug
- title
- url
- reasons
maxItems: 5
nextAction:
type: object
properties:
label:
type: string
maxLength: 160
url:
type: string
maxLength: 4096
format: uri
required:
- label
valid:
type: boolean
enum:
- false
routeSuggestion:
type: string
enum:
- fix_required
- route_away
- manual_review
required:
- ok
- category
- slug
- schema
- risk
- expectedNotes
- blockers
- warnings
- duplicates
- nextAction
- valid
- routeSuggestion
additionalProperties: false
- type: object
properties:
ok:
type: boolean
enum:
- true
valid:
type: boolean
enum:
- false
queued:
type: boolean
enum:
- false
required:
- ok
- valid
- queued
additionalProperties: false
'400':
description: Invalid JSON, invalid query, invalid payload, or invalid status transition.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'401':
description: Unauthorized admin token or invalid webhook signature.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'403':
description: Forbidden origin.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'413':
description: Payload too large.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'415':
description: Invalid content type.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'429':
description: Route-level or Cloudflare-native rate limited.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'500':
description: Internal error.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'502':
description: Upstream provider error.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
'503':
description: Site DB not configured, provider not configured, or endpoint unavailable.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- false
error:
type: object
properties:
code:
type: string
minLength: 1
message:
type: string
details: {}
required:
- code
requestId:
type: string
required:
- ok
- error
operationId: postApiSubmissionsPreflight
x-operation-id-source: derived