Base URL
All requests to the Developer Portal API must include a
Content-Type: application/json
header, a User-Agent
header, and a valid JSON body.Verify Proof
Enables you to verify a World ID proof for a Cloud action. To ensure sybil-resistance, by default, a single person can only verify once for every action. The number of allowed verifications for a single user can be configured in the Developer Portal.This endpoint is now on version 2. The previous version at
/api/v1/verify/{app_id}
will be unavailable after June 30, 2024.Request Body
The unique user identifier (called the nullifier hash in the ZKP), as provided
by IDKit. See IDKit response for details.
The zero-knowledge proof, as provided by IDKit. See IDKit
response for details.
Part of the ZKP, the hash of the Merkle root that proves membership to the set
of credentials. As provided by IDKit. See IDKit
response for details.
The verification level, as provided by IDKit. See IDKit
response for details.
Same action identifier as passed to IDKit.
The hash of the signal that was used to generate the proof. Defaults to the
hash of an empty string.
The maximum age of the root in seconds. This parameter controls how old the
Merkle root used in the proof can be. Minimum value is 3600 (1 hour) and
maximum value is 604800 (7 days). Defaults to 7200 (2 hours).
Possible Responses
200 OK
- The proof was successfully verified.400 Bad Request
- The proof was invalid or the user has already verified for this action.
Response Examples
Get Action Metadata
Enables fetching information about a particular app to determine eligibility for verification. This endpoint is also used by the World ID Kiosk, Sign in with World ID, and World App to show metadata about the action being verified. This endpoint will only return information for active actions.Primarily intended for internal use.
Request Body
The action to check. This is the same action that was passed to IDKit.
Defaults to an empty string for Sign in with World ID.
The ZKP’s nullifier hash, as provided by IDKit. See IDKit
response for details. Defaults to an empty
string.
Deprecated. The ZKP’s external nullifier. This parameter is deprecated and
will be removed in a future release, and should no longer be used. Instead,
pass the
action
parameter.Response
Always returns
app
.The
app_id
from the Developer Portal.Whether the app is configured for use with Cloud or On-Chain proof
verifications.
Whether the app is a staging app. If
true
, the Worldcoin
Simulator must be used to verify.Whether the app has been verified by Worldcoin.
The app’s name as configured in the Developer Portal.
The URL of the app’s logo. Only returned if the app has been verified,
otherwise returns an empty string.
Whether the action request is for Sign in with World ID.
If the user is eligible to verify for this action.
“yes”
: The user has not reached the maximum number of verifications for this action based on thenullifier_hash
provided. Always returned whenis_sign_in
istrue
.“no”
: The user has reached the maximum number of verifications for this action based on thenullifier_hash
provided.“undetermined”
: Anullifier_hash
was not provided, so the user’s eligibility cannot be determined.“on-chain”
: The app is configured for On-Chain verifications, so the user’s eligibility cannot be determined. Verification eligibility is determined solely by the application’s smart contract.
Information about the action being verified.
name
: The action’s human-readable name as configured in the Developer Portal.action
: The action identifier as configured in the Developer Portal. Typically a slugified version of the action’s name.description
: The action’s description as configured in the Developer Portal.max_verifications
: The maximum number of verifications allowed for this action. Will be0
if the action is configured for unlimited verifications.max_accounts_per_user
: The maximum number of accounts allowed per user for Sign in with World ID. Will always be1
.external_nullifier
: The action’s external nullifier. Intended for internal use only.status
: Will returnactive
if the action is active, otherwise will returninactive
.__typename
: Always returnsaction
.
Response Examples
Get JWK Keys
This endpoint lets you retrieve the JWKs (public keys) used to verify the signature on JSON web tokens that authenticate a verification request from the Developer Portal. This verification method is only used if you are using the Hosted page user interface.Response
Authenticated Endpoints
You can generate API Keys on the My Team page of the Developer Portal.
- API keys are intended for use by third-party applications and for server-to-server communication. They are long-lived and can be revoked at any time.
- API keys are scoped to a team and have full permissions for any actions as any user of the Developer Portal.
- Once you have an API key, use it as the value of the
Authorization
header in your requests. For example: