What You Can Do
- Run GEO evaluation workflows against your target prompts.
- Run concurrent evaluations across multiple real AI web pages and sessions.
- Compare the same prompt across different AI providers and web experiences.
Request Access
Private Beta
Evaluate API is currently available by request during private beta. We
enable access for approved workspaces.
Apply Now
Email
hello@actionbook.dev with your company, the website you want to
test, and your use case.Quick Start
Get started in 3 minutes: create a profile, complete login, and run your first evaluate request.Step 1: Get Your API Key
Create an Actionbook API key from the Actionbook dashboard. All endpoints on this page require it in thex-api-key header.
Step 2: Create Profile
Step 3: Complete Profile Login
Open the returnedprofile_login_url, complete the login flow, then persist the
profile with the finish endpoint.
Profile Login Demo
Step 4: Submit Evaluate Request
Get Your Final AI Response
The endpoint returns a Server-Sent Events (SSE) stream. A typical response looks like this:start initializes the task, chunk streams partial output, and complete
returns the final response payload including performance metrics.
API Reference
POST /api/profiles
Creates a profile and returns a remote browser login URL.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Content-Type | No | application/json when sending a body |
Response
profile_idvalues use thegp_prefixprofile_login_urlis a HyperBrowser live session URL
GET /api/profiles
Returns all profiles owned by the current API key user.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Response
Profile fields
| Field | Type | Notes |
|---|---|---|
profile_id | string | Profile ID |
provider | string | Currently document chatgpt |
created_time | string | ISO 8601 |
last_update_time | string | ISO 8601 |
PUT /api/profiles/{profileId}
Re-opens a login session for an existing profile.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Response
- You still need to log in and call
POST /api/profiles/{profileId}/finish
POST /api/profiles/{profileId}/finish
Persists the profile data after login is complete.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Response
Returns a standard success envelope.DELETE /api/profiles/{profileId}
Deletes the profile and related evaluate task records.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Response
Returns a standard success envelope.POST /api/evaluate
Creates an evaluate task and returns an SSE stream.
Headers
| Name | Required | Value |
|---|---|---|
x-api-key | Yes | Actionbook API key |
Content-Type | Yes | application/json |
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
input | string | Yes | Must be non-empty |
profile_id | string | Yes | Must belong to the current user |
chat_id | string | null | No | Continue an existing conversation |
provider | string | No | Defaults to chatgpt |
Response
Headers:complete event fields
| Field | Type | Notes |
|---|---|---|
chat_id | string | Conversation ID for multi-turn follow-ups |
output.content | string | Final AI response text |
output.created_at | string | ISO 8601 timestamp when the task was created |
output.completed_at | string | ISO 8601 timestamp when the task finished |
metrics.ttft_ms | number | Time to first token in milliseconds |