weirapp-io Account API
Introspection: who this key belongs to, what credit it has left, and what its tier allows. These endpoints are free — they never consume credits.
Introspection: who this key belongs to, what credit it has left, and what its tier allows. These endpoints are free — they never consume credits.
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/weirapp-io:weirapp-io-account-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: Weirapp Io Account API
version: f158984142f8-20261030T153102Z
contact:
name: Weir support
url: https://weirapp.io
email: support@weirapp.io
license:
name: Weir Terms of Service
url: https://weirapp.io/terms
termsOfService: https://weirapp.io/terms
description: 'Operations tagged Account across 2 of this provider''s published API definitions: weirapp-openapi.json, weirapp-io-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.weirapp.io
description: API
security:
- bearerAuth: []
tags:
- name: Account
description: 'Introspection: who this key belongs to, what credit it has left, and what its tier allows. These endpoints are free — they never consume credits.'
paths:
/v1/usage:
get:
operationId: getUsage
tags:
- Account
summary: Credit balance, holds, and this month's free grant
description: Returns the caller's own credit state. Requires authentication but no additional scope, because a key that cannot discover why it is being refused cannot handle being refused.
security:
- bearerAuth: []
responses:
'200':
description: The account's credits.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
balance:
type: integer
minimum: 0
description: 'Credits the account holds: what is left of this month''s free grant plus everything bought. Purchased credits never expire.'
reserved:
type: integer
minimum: 0
description: Credits held by this account's calls still in flight. Each is charged what it returned and gives the rest back when it finishes.
available:
type: integer
minimum: 0
description: balance minus reserved. A billed call is admitted while this covers its minimum charge; below that, calls return 402 until credits are added.
freeGrant:
type:
- object
- 'null'
properties:
granted:
type: integer
minimum: 0
remaining:
type: integer
minimum: 0
resetsAt:
type: string
format: date-time
description: When this month's free credits expire and next month's arrive.
required:
- granted
- remaining
- resetsAt
description: 'This month''s free credits, which are spent before anything bought and do not roll over. Null for a workspace that does not receive them: each person''s oldest workspace does.'
tier:
type: string
enum:
- free
- t1
- t2
- t3
description: 'Raised by lifetime credit purchases, net of refunds: free, then t1 from $5, t2 from $100, t3 from $500. Spending and time never lower it.'
spendingPaused:
type: boolean
description: True while a refund or payment dispute on the account is resolved. Billed calls return 402 until then; free calls still work.
required:
- balance
- reserved
- available
- freeGrant
- tier
- spendingPaused
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- data
- meta
'400':
description: The request failed validation.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'401':
description: The API key is missing, malformed, expired, or revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'402':
description: 'The account is out of credit. Not retryable: this cannot clear until the billing period resets or the plan changes.'
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'403':
description: The API key does not carry the scope this route requires.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'404':
description: The account no longer exists.
content:
application/json:
schema:
type: object
properties: {}
additionalProperties: {}
'429':
description: 'The per-minute rate limit is exhausted. Retryable: wait for Retry-After and try again.'
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
x-weir-billing:
minimumCredits: 0
rateLimitWeight: 1
units: []
servers:
- url: https://api.weirapp.io
description: API
/v1/limits:
get:
operationId: getLimits
tags:
- Account
summary: Ceilings imposed by the account's tier
security:
- bearerAuth: []
responses:
'200':
description: Tier limits.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
tier:
type: string
enum:
- free
- t1
- t2
- t3
description: 'Raised by lifetime credit purchases, net of refunds: free, then t1 from $5, t2 from $100, t3 from $500. Spending and time never lower it.'
rateLimitPerMinute:
type: integer
exclusiveMinimum: 0
maxMonitors:
type: integer
minimum: 0
maxWebhooks:
type: integer
minimum: 0
hourlySchedules:
type: boolean
description: Whether monitors may run hourly. Daily and weekly schedules are on every tier.
required:
- tier
- rateLimitPerMinute
- maxMonitors
- maxWebhooks
- hourlySchedules
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- data
- meta
'400':
description: The request failed validation.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'401':
description: The API key is missing, malformed, expired, or revoked.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'402':
description: 'The account is out of credit. Not retryable: this cannot clear until the billing period resets or the plan changes.'
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'403':
description: The API key does not carry the scope this route requires.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'404':
description: The account no longer exists.
content:
application/json:
schema:
type: object
properties: {}
additionalProperties: {}
'429':
description: 'The per-minute rate limit is exhausted. Retryable: wait for Retry-After and try again.'
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'500':
description: An unexpected error occurred.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
x-weir-billing:
minimumCredits: 0
rateLimitWeight: 1
units: []
servers:
- url: https://api.weirapp.io
description: API
/v1/whoami:
get:
operationId: getIdentity
tags:
- Account
summary: Identify the account and scopes behind this key
security:
- bearerAuth: []
responses:
'200':
description: Authenticated API identity.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
accountId:
type: string
format: uuid
apiKeyId:
type: string
format: uuid
scopes:
type: array
items:
type: string
required:
- accountId
- apiKeyId
- scopes
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- data
- meta
'401':
description: Invalid API key.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
'429':
description: Rate limit exceeded.
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
retryable:
type: boolean
details:
type: object
additionalProperties: {}
required:
- code
- message
- retryable
meta:
type: object
properties:
requestId:
type: string
required:
- requestId
required:
- error
- meta
x-weir-billing:
minimumCredits: 0
rateLimitWeight: 1
units: []
servers:
- url: https://api.weirapp.io
description: API
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: Weir API key
x-refined-from:
- weirapp-openapi.json
- weirapp-io-openapi.json