Skip to content
API Now! is currently in closed beta. We are constantly updating these guides as we release updates!

Quick Start (5 Mins)

Welcome to API Now! In this 5-minute tutorial, you will build, secure, and deploy a complete, production-ready Task Manager API from scratch—without writing a single line of code.

By the end of this guide, you will have a live PostgreSQL database, automatic user authentication with JWT sessions, role-based access control (RBAC), and fully secured CRUD endpoints ready to connect to any frontend (such as Bubble, FlutterFlow, Webflow, Zapier, or custom code).


Backend development in API Now! follows a simple, visual 2-step journey from blueprint to live API:

flowchart LR
    Step1["<b>Step 1: Data Modeler</b><br/>• Define Entities & Fields<br/>• Attach Data Semantics<br/>• Commit & Publish Domain"] 
    --> Step2["<b>Step 2: API Modeler</b><br/>• Select Published Domain<br/>• Configure Auth & Session<br/>• Expose Actions & Access Rules<br/>• One-Click Deploy"] 
    --> Step3["<b>Step 3: Live API & Portal</b><br/>• Live PostgreSQL Database<br/>• REST API & Interactive Docs"]
  1. The Data Modeler (The Blueprint): You define your business records (User and Task), attach semantic modules that automate backend validation and security, and publish your domain to the Data Catalog.
  2. The API Modeler (The Gateway): You select your published domain, set up authentication and session handling, expose CRUD actions, configure access scenarios, and deploy your live API with one click.
  3. The Live API & Portal: The serverless runtime provisions your database, generates live REST endpoints, and provides an interactive API Portal for testing.

Step 1: Build & Publish Your Data Blueprint

Section titled “Step 1: Build & Publish Your Data Blueprint”

First, let’s create a new Data Domain, define our User and Task entities with Data Semantics, and publish the domain so it is ready to power an API.

  1. Open the platform at app.apinow.app. From the main workspace screen (Files), click the Add button in the top right.
  2. Select Domain model (Define your data).
  3. Name your file Task Manager and open it.

Create Domain Model

  1. In the left navigation panel, click Add and select Data Model.
  2. Set the Model name to Tasks.

Create Domain Model

  1. Right-click the Tasks data model in the navigation panel and select New Entity.
  2. Set the Name to user and the Display name to User.
  3. Under Entity semantics, click + Add semantic and select the User Entity semantic module.
  4. Add the following fields under the Fields section:
    • id: Type String, check Identifier.
    • email: Type String, check Required and Index. Under Field semantics, click + Add semantic and apply both Email and Username.
    • password: Type String, check Required and Write Only. Under Field semantics, apply User Password.
    • role: Type String. Toggle on Pre-defined values (enum) and add two values: member and admin. Set the Default value to Literal with value member. Under Field semantics, apply User Role Field.

User entity

  1. Right-click the Tasks data model in the navigation panel and select New Entity.
  2. Set the Name to task and the Display name to Task.
  3. Add the following standard properties by clicking Add field > Property:
    • id: Type String, check Identifier.
    • title: Type String, check Required. Under Field semantics, apply Record Title.
    • slug: Type String, check Required. Under Field semantics, apply Public Unique Name (automatically auto-generates URL slugs from the title).
    • status: Type String, check Required and Index. Toggle on Pre-defined values (enum) and add pending, in_progress, and completed. Set the Default value to Literal with value pending. Under Field semantics, apply Status.
  4. Add the relationship to the User entity by clicking Add field > Reference:
    • Name: author
    • Under Target entity, click Choose target entity and select the User entity from your data model.
    • Under Association semantics, click + Add semantic and apply Resource Owner Identifier.

Task entity

Before connecting your data to an API, you must publish the domain so it is locked, versioned, and cataloged.

  1. Click Commit version in the top-right toolbar.
  2. In the confirmation dialog, verify the version name is 1.0.0 and click Save.
  3. Once committed, the button changes to Publish. Click Publish.
  4. Step 1: Preparation (Validation): A modal appears validating your domain schema. You will see info-level notices (e.g. recommendations for timestamp taxonomies or soft deletion). Because there are no blocking errors, click Continue.

Domain Validation Issues

  1. Step 2: Gathering Information: Keep the default settings (Listing title: Task Manager, Version name: 1.0.0, Visibility: public, Lifecycle: Stable), and enter a Listing description such as "My first data domain".

Domain Publish Screen

  1. Click Publish. In a few seconds, you will see a confirmation message: “Your data domain was published”.

Now that your data blueprint is published in the catalog, let’s create the API model that will expose secure endpoints to the outside world.

  1. Return to the main Files screen.
  2. Click Add in the top right and select API (Make data actionable).
  3. Name your file Task Manager API and open it.

In the first step (Data Domain), the catalog displays your available domains:

  1. Locate the Task Manager domain (Version 1.0.0, Lifecycle Stable) you published in Step 1.
  2. Click Select to attach it to your API.

Select Data Domain

  1. Click Description in the left navigation sidebar.
  2. Under Version*, enter 1.0.0.
  3. You can leave the optional description, terms, and license fields as defaults.

API Description

4. Set Authentication & Authorization Strategies

Section titled “4. Set Authentication & Authorization Strategies”
  1. Click API Access in the left navigation sidebar.
  2. Keep the default Authentication strategy set to Username and Password (it automatically detects email as the username property and password as the password property).
  3. Keep the default Authorization strategy set to Role-based authentication (it automatically detects role as the role property).

API Access

  1. Click Session in the left navigation sidebar.
  2. Under User object, User is automatically detected and selected.
  3. Under Session Properties, id and role are preselected automatically from your entity semantics.
  4. Keep the default Session Security encryption secret and settings.

API Session

  1. Click Pagination in the left navigation sidebar.
  2. Keep the default Cursor pagination strategy (Default page size: 20, Maximum page size: 100).

API Pagination

  1. Click Actions in the left navigation sidebar.
  2. Click the Add data button to expose a root entity.
  3. In the dialog, select the Task entity. A new Task card appears on the visual modeling canvas.
  4. Click the Edit button on the Task card to open the configuration panel on the right.
  5. Enable all CRUD actions:
    • Collection Actions: Toggle on Create and List.
    • Resource Actions: Toggle on Read, Update, and Delete.

Expose Task Entity

Now let’s secure our endpoints with access rules:

  1. On the Task card, click the Create action badge. The right side panel switches to the Task: Create action view on the Access tab.
  2. Under Access scenarios, click + Add scenario (this creates #1 Scenario).
  3. Click + Add rule and choose Allow authenticated from the menu.

Task Create Access Rule

  1. Repeat this step for the remaining actions (List, Read, Update, and Delete):
    • Click the action on the Task card.
    • Click + Add scenario.
    • Click + Add rule and select Allow authenticated (or configure Allow public for read actions).
    • Notice that the error indicators on all action badges disappear once an access scenario is assigned.

Your API configuration is now complete! Let’s deploy it live to the serverless runtime:

  1. Click Publish in the left navigation sidebar.
  2. Click the Start deployment button.
  3. Step 1: Preparation (Validation): A validation modal checks your configuration. Any warnings or notices (such as optional rate limiting suggestions) can be bypassed because there are zero errors. Click Continue.

API Deployment Validation

  1. Step 2: Details: Leave the default environment as production and version as v1, then click Deploy.
  2. Step 3: Deployment: The Serverless Runtime automatically provisions a dedicated PostgreSQL database, runs all schema migrations, creates indexes, and launches your live REST endpoints (this takes about a minute).
  3. Confirmation Screen: Once deployed, you will receive confirmation with two critical live endpoints:
    • API Portal: Interactive web documentation and sandbox where you can test every endpoint directly in your browser.
    • Base URI: Your live REST API base URL (e.g., https://<your-org-slug>.run.apinow.app/api/<your-api-name>/v1).

Deployment Confirmation


Every deployed API in API Now! comes with an interactive, auto-generated API Portal where you can explore endpoints, inspect request and response schemas, and execute live API calls right from your browser.

Since our Task actions require an authenticated user session, let’s register an account, log in to retrieve a session token, create a task, and view the task list!

1. Open the API Portal & Create an Account

Section titled “1. Open the API Portal & Create an Account”
  1. From the deployment confirmation screen, click the API Portal link (or open the provided URL).
  2. The portal overview displays your API summary and all auto-generated endpoints.

Portal Summary

  1. Under the Endpoints menu on the left, click /auth/register (POST auth_register). The /auth endpoints are fully managed by API Now! based on your identity semantics.
  2. In the interactive request editor on the right:
    • Enter your registration credentials in the Body editor:
      {
      "email": "my-email@fake.com",
      "password": "very-hard-to-guess"
      }
    • Click Send.
  3. You will see a 200 OK response returning your new user record:
{
"data": {
"id": "tfgCQaLoeqy6Sbpuo8OSG",
"email": "my-email@fake.com",
"role": "member"
}
}

User Registered in Portal


  1. In the left navigation, select /auth/login (POST auth_login).
  2. In the Body editor, enter your registered credentials:
    {
    "email": "my-email@fake.com",
    "password": "very-hard-to-guess"
    }
  3. Click Send.
  4. The response returns "success": true and a signed JWT session token under data.token:
{
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"success": true
}
}
  1. Copy the generated token string—you will use it to authenticate subsequent requests.

User Logged in Portal


  1. In the left navigation, select /tasks (POST create_task).
  2. In the Body editor, enter the task payload:
    {
    "title": "Launch Beta Product"
    }
  3. Scroll to the Credentials section:
    • Set the Authorization method to BearerAuth.
    • Paste the JWT token from the previous step into the Token value* field.
  4. Click Send.
  5. Your task is created instantly!
{
"data": {
"id": "2_3WlU59uXH6SNdki4V0g",
"title": "Launch Beta Product",
"slug": "launch-beta-product",
"status": "pending",
"author": "tfgCQaLoeqy6Sbpuo8OSG"
}
}

Task Created in Portal


  1. In the left navigation, select /tasks (GET list_task).
  2. Click Send to execute the query.
  3. The response returns your list of tasks along with cursor-based pagination metadata:
{
"data": [
{
"id": "2_3WlU59uXH6SNdki4V0g",
"title": "Launch Beta Product",
"slug": "launch-beta-product",
"status": "pending",
"author": "tfgCQaLoeqy6Sbpuo8OSG"
}
],
"meta": {
"next_cursor": null,
"has_more": false
}
}

Task List in Portal


You can also make requests directly from your terminal or application code using your live Base URI:

Terminal window
curl -X POST https://<your-org-slug>.run.apinow.app/api/<your-api-name>/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your_session_jwt>" \
-d '{
"title": "Launch Beta Product"
}'

In under 5 minutes, you accomplished what traditionally takes weeks of backend infrastructure work:

  1. Relational Database Generated: A dedicated PostgreSQL schema was provisioned with foreign keys, unique constraints, and optimized indexes.
  2. Identity & RBAC Enforced: User authentication with secure password hashing and session tokens was established out of the box.
  3. Data Ownership & Logic Automated: The runtime automatically manages slug generation, status state enums, and ownership tracking without writing backend code.
  4. Production-Ready & Documented: Your API is globally distributed, protected with standard error formats (RFC 9457), and complete with an interactive API Portal.