/projects/{project_id}/branches/{branch_id}/data-api/{database_name}Create Neon Data APICreates a new instance of Neon Data API in the specified branch. The Data API exposes a REST interface over the branch database. The database_name path parameter determines which database the API serves.
Parameters
project_idstringpathrequiredThe Neon project ID
branch_idstringpathrequiredThe Neon branch ID
database_namestringpathrequiredThe database name
Request body
application/json
Create Neon Data API
add_default_grantsbooleanGrant all permissions to the tables in the public schema to authenticated users
auth_providerstringAuthentication provider for the Neon Data API. `neon_auth`: use Neon's built-in managed authentication (no JWKS configuration required). `external`: use an external JWT provider, which requires `jwks_url`. When omitted, no auth provider is configured (existing setup is kept).
jwks_urlstring · uriURL of the JWKS endpoint used to verify JWTs for this Data API. Required when configuring JWT-based authentication; omit when using a non-JWT auth provider.
jwt_audiencestringExpected `aud` claim in incoming JWTs. When set, tokens with a different audience are rejected; tokens with no audience are still accepted. Omit to skip audience validation.
provider_namestringDisplay name for the authentication provider. Accepted values include "Clerk", "Stytch", and "Auth0", but any non-empty string is valid. Optional field.
settingsobjectConfiguration settings for the Neon Data API
Show child attributes
db_aggregates_enabledbooleanEnable aggregates feature
db_anon_rolestringDatabase role to use for anonymous requests
db_extra_search_pathstringExtra schemas to add to the search path
db_max_rowsintegerHard limit on the number of rows returned in a single Data API response. No limit when unset.
db_schemasarray of stringList of schemas to expose via the API. Default: ["public"]
Show child attributes
jwt_cache_max_lifetimeintegerMaximum lifetime of the Data API's JWT cache, in seconds.
jwt_role_claim_keystringJWT claim key to use for role extraction
openapi_modestringOpenAPI specification mode (ignore-privileges, disabled)
server_cors_allowed_originsstringCORS allowed origins
server_timing_enabledbooleanWhen enabled, the Data API adds `Server-Timing` headers to each response showing database execution and internal processing time. Default: disabled.
skip_auth_schemabooleanSkip creating the auth schema and RLS functions
{
"add_default_grants": false,
"auth_provider": "external",
"jwks_url": "https://example.com",
"jwt_audience": "string",
"provider_name": "string",
"settings": {
"db_aggregates_enabled": true,
"db_anon_role": "anonymous",
"db_extra_search_path": "string",
"db_max_rows": 0,
"db_schemas": [
"string"
],
"jwt_cache_max_lifetime": 0,
"jwt_role_claim_key": ".role",
"openapi_mode": "disabled",
"server_cors_allowed_origins": "string",
"server_timing_enabled": true
},
"skip_auth_schema": false
}Responses
Neon Data API created successfully
urlstring · urirequiredURL of the created Data API endpoint.
{
"url": "https://example.com"
}codestringrequiredmessagestringrequiredError message
request_idstringUnique identifier for the request, useful for debugging. You can set this value manually by including an `X-Request-ID` header in the request. If not provided, the value will be generated automatically.
{
"code": "",
"message": "string",
"request_id": "string"
}