Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API 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.
openapi: 3.2.0
info:
title: asobeast Webhooks API
description: 'Self hosted ASO toolkit API.
A metered instance carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset on every response, for the tightest limit the request touched. A self hosted instance has no request rate limits and sends no such header. Limits are per workspace, so minting more tokens does not buy more capacity, and they are sized per plan across three classes: read for stored data, write for configuration changes and store for the endpoints that reach the App Store or Google Play.
A 429 carries Retry-After and a rateLimit object naming the window that closed, or an aiAllowance object when the workspace has spent the AI calls its plan includes this month. A 403 with a quota object means a plan capacity limit such as apps or tracked keyword markets, which is a different problem from a rate limit. A 402 with an entitlement object means the workspace needs a plan.
Positions are 1-based and null means checked but not found within the captured depth, never zero. Daily granularity uses UTC dates.'
version: 1.15.0
contact: {}
servers:
- url: http://localhost:3000/api/backend
description: Web origin proxy
- url: http://localhost:4000
description: Direct API
security:
- personalApiToken: []
tags:
- name: Webhooks
paths:
/webhooks:
get:
operationId: WebhooksController_list
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
type: object
summary: List configured alert webhooks
tags:
- Webhooks
post:
operationId: WebhooksController_create
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookDto'
responses:
'201':
description: ''
content:
application/json:
schema:
type: object
summary: Register an alert webhook
tags:
- Webhooks
/webhooks/{id}:
patch:
operationId: WebhooksController_update
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookDto'
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
summary: Update an alert webhook
tags:
- Webhooks
delete:
operationId: WebhooksController_remove
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'204':
description: ''
summary: Delete an alert webhook
tags:
- Webhooks
/webhooks/{id}/test:
post:
operationId: WebhooksController_test
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
type: object
summary: Send a sample payload to a webhook
tags:
- Webhooks
components:
schemas:
CreateWebhookDto:
type: object
properties:
reviewScores:
type: array
items:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
example:
- 1
- 2
description: The stars a review.new alert is raised for. Empty or omitted means every star.
url:
type: string
format: uri
events:
type: array
minItems: 1
items:
type: string
enum:
- metadata.changed
- rank.dropped
- rank.improved
- rank.milestone
- rank.first
- rank.overtaken
- review.negative
- digest.weekly
- serp.entrant
- action.opened
- chart.entered
- chart.left
- chart.milestone
- review.new
secret:
type: string
minLength: 8
confirmDrops:
type: boolean
required:
- url
- events
UpdateWebhookDto:
type: object
properties:
reviewScores:
type: array
items:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
example:
- 1
- 2
description: The stars a review.new alert is raised for. Empty or omitted means every star.
url:
type: string
format: uri
events:
type: array
minItems: 1
items:
type: string
enum:
- metadata.changed
- rank.dropped
- rank.improved
- rank.milestone
- rank.first
- rank.overtaken
- review.negative
- digest.weekly
- serp.entrant
- action.opened
- chart.entered
- chart.left
- chart.milestone
- review.new
secret:
type: string
minLength: 8
active:
type: boolean
confirmDrops:
type: boolean
securitySchemes:
personalApiToken:
scheme: bearer
bearerFormat: asob
type: http