canonical: https://jentic.com/apis/backend.genpage.ai/genpage

# Backend Genpage GenPage External API Documentation

GenPage generates AI-personalised landing pages for B2B sales outreach, with each page tailored to a single lead, audience segment, or campaign. The API exposes 14 external endpoints for upserting leads, listing campaigns and audiences, retrieving workspace variables used in page templates, and managing API tokens. A Zapier integration path lets ops teams push leads from existing CRMs without custom plumbing. Outbound teams use GenPage to attach a personalised page link to every cold email or LinkedIn message.

## For AI agents

Push leads, list campaigns and audiences, and manage API tokens for AI-personalised B2B landing pages on GenPage.

## Scope

Does not handle email sending, CRM record management, or page hosting outside GenPage - use for lead upserts and personalised landing page generation only.

## Capabilities

- Upsert leads in bulk and poll the resulting job until each personalised page is generated
- Push individual leads from Zapier into a target campaign without writing integration code
- List campaigns and audiences to keep external CRMs and dashboards in sync
- Retrieve workspace merge variables to build template-aware lead payloads
- Generate, list, and revoke API tokens for tightening workspace access
- Verify authentication with a hello-world endpoint before triggering production batches

## Use cases

### Cold Outbound Personalisation

Sales teams running cold email or LinkedIn outreach attach a GenPage personalised landing page link to every message. The API accepts batches of leads via `/api/external/v1/leads/upsert-leads` with company and persona variables, and GenPage generates a unique URL per lead. The link reflects the prospect's company, role, and any custom workspace variables, lifting reply rates compared to a generic landing page.

Example prompt: Upsert 50 leads to campaign {campaign_id} via `/api/external/v1/leads/upsert-leads`, then poll `/api/external/v1/leads/get-status` until the job completes.

### Zapier-Driven Lead Sync

Teams already using Zapier can wire their CRM, form provider, or enrichment tool directly into GenPage via `/api/external/v1/zapier/upsert-lead.` Each new lead in the source system triggers a personalised page creation without engineering effort. Authentication is verified via `/api/external/v1/zapier/test` before the Zap goes live.

Example prompt: Create a Zapier-style lead via POST `/api/external/v1/zapier/upsert-lead` with the lead's email, company, and campaign reference.

### Campaign and Audience Reporting

Marketing ops pulls the campaign and audience lists, plus workspace variables, to keep external dashboards or BI tools in sync with GenPage. `/api/external/v1/campaigns/get-list` and `/api/external/v1/audiences/get-list` return the current entities, and `/api/external/v1/workspaces/get-variable-list` returns the merge tags available in templates.

Example prompt: Fetch all campaigns and audiences via the get-list endpoints and write the data to a Google Sheet for the weekly outbound review.

### AI Agent Integration via Jentic

An agent built on Jentic can take a list of target accounts from a research pass, push them as leads into a GenPage campaign, and return personalised URLs to the email-drafting step. Jentic isolates the API token in the vault so the agent never sees the raw credential.

Example prompt: Search Jentic for 'upsert leads to genpage', load the upsert-leads schema, and execute it with a list of 10 prospect emails and company names.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/external/v1/leads/upsert-leads` | Upsert multiple leads in one call |
| POST | `/api/external/v1/leads/upsert-lead` | Upsert a single lead |
| GET | `/api/external/v1/leads/get-status` | Check status of a lead-upsert job |
| GET | `/api/external/v1/campaigns/get-list` | List all campaigns |
| GET | `/api/external/v1/audiences/get-list` | List all audiences |
| POST | `/api/external/v1/zapier/upsert-lead` | Create a lead through the Zapier endpoint |
| POST | `/api/external/v1/generate-api-token` | Generate a new API token |

## Key resources

- **Leads** — Upsert single or bulk leads, fetch leads from a job, and check job status
- **Campaigns** — List all campaigns in the workspace
- **Audiences** — List audiences used to segment personalised pages
- **Workspaces** — List workspaces and the variables available as merge tags
- **API Tokens** — Generate, list, and delete API tokens for the workspace
- **Zapier** — Dedicated test and lead-creation endpoints for Zapier integrations

## Why Jentic

- **Setup:** Wiring GenPage by hand means generating an API key, attaching it as a bearer token on every request, and building the batch-upsert-then-poll loop against `/api/external/v1/leads/get-status` yourself. Through Jentic you install once, import the GenPage API from the API Directory, store the API token once, and your agent calls it.
- **Permission scoping:** GenPage carries the lead, campaign, and audience details in the request body rather than in the URL path, so scoping is by operation: limit the agent to the operations it needs, such as `/api/external/v1/leads/upsert-leads` and `/api/external/v1/campaigns/get-list.` You choose those operations, so token administration like `/api/external/v1/delete-api-token` is not included unless you add it.
- **Credential handling:** Your GenPage API token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upsert leads into a campaign' or 'list my personalised-page campaigns', and Jentic returns the matching GenPage operation with its input schema so the agent calls the correct path without reading the reference docs.

## Related APIs

- **Expertease apis** — Another AI-driven backend, focused on chatbots rather than landing pages
- **Bandsintown** — Event data API that could feed niche outreach personalisation
- **Bacon Ipsum** — Filler text generator for testing GenPage templates before production lead loads

## FAQ

### What authentication does the GenPage API use?

The API uses API key authentication via an Authorization header containing a bearer token. Tokens are generated through POST `/api/external/v1/generate-api-token` and listed via GET `/api/external/v1/get-api-tokens.` When called through Jentic, the token is held in the encrypted vault and never exposed to the agent's runtime.

### Can I upsert leads in bulk through the GenPage API?

Yes. POST `/api/external/v1/leads/upsert-leads` accepts a batch of leads. The endpoint returns a job ID, and you poll `/api/external/v1/leads/get-status` until processing finishes. Use `/api/external/v1/leads/get-leads` to retrieve the leads attached to that job.

### What are the rate limits for the GenPage API?

Rate limits are not declared in the OpenAPI spec. Limits are enforced per API token at the GenPage backend; check the GenPage docs at https://backend.genpage.ai/docs/openapi.yaml or contact GenPage support before high-volume bulk upserts.

### How do I push leads from my existing tooling without writing custom code?

Use the Zapier-specific endpoint POST `/api/external/v1/zapier/upsert-lead.` Test the connection first with GET `/api/external/v1/zapier/test` to confirm your token authenticates. Through Jentic, you can search 'create a genpage lead via zapier' to load the schema directly.

### How do I find which merge variables I can use in a campaign?

Call GET `/api/external/v1/workspaces/get-variable-list` to retrieve the merge tags available in your workspace. These are the variables the page template will substitute when generating the personalised landing page for each lead.

### How do I revoke an API token if it leaks?

List your tokens via GET `/api/external/v1/get-api-tokens`, identify the compromised token, then call DELETE `/api/external/v1/delete-api-token` to revoke it. Generate a replacement with `/api/external/v1/generate-api-token` and rotate it in your integrations.

### Can I limit what my agent is allowed to do with the GenPage API?

Yes. Because you run Jentic One yourself, your own rules decide which GenPage operations and which stored API token the agent may use. GenPage carries lead, campaign, and audience details in the request body rather than the URL, so you scope by operation: grant only what the agent needs, such as `/api/external/v1/leads/upsert-leads` and `/api/external/v1/campaigns/get-list.` Token-administration calls like `/api/external/v1/delete-api-token` stay off-limits unless you explicitly add them.
