# Botify API API

> Botify API API on Apizie: 26 endpoints (List all analyses for a project, Get an Analysis detail, Return global statistics for an analysis, Return crawl statistics grouped by time frequency (1 min, 5 mins or 60 min), …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/analytics:botify/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `analytics:botify`
- Category: Analytics
- Status: byok
- Source: https://botify.com
- Page: https://zieapi.vercel.app/api/analytics/botify
- OpenAPI: https://zieapi.vercel.app/api/analytics/botify/openapi.json

Botify Saas API

## Endpoints

### List all analyses for a project
`GET https://zieapi.vercel.app/v1/analytics:botify/get-project-analyses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Get an Analysis detail
`GET https://zieapi.vercel.app/v1/analytics:botify/get-analysis-summary` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |

### Return global statistics for an analysis
`GET https://zieapi.vercel.app/v1/analytics:botify/get-crawl-statistics` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |

### Return crawl statistics grouped by time frequency (1 min, 5 mins or 60 min)
`GET https://zieapi.vercel.app/v1/analytics:botify/get-crawl-statistics-by-frequency` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| limit | integer | no | max number of elements to retrieve |
| frequency | string | yes | Aggregation frequency |

### Return a list of 1000 latest URLs crawled (all crawled URLs or only URLS with HTTP errors)
`GET https://zieapi.vercel.app/v1/analytics:botify/get-crawl-statistics-urls` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| list_type | string | yes | URLs list type (crawled URLs or error URLs) |

### List of Orphan URLs
`GET https://zieapi.vercel.app/v1/analytics:botify/get-ganalytics-orphan-urls` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| medium | string | yes | Type of traffic, value: 'organic' (from search engine)or 'social' (from a social network) |
| source | string | yes | Traffic source, value: name of the search engine or social network |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Get inlinks percentiles
`GET https://zieapi.vercel.app/v1/analytics:botify/get-links-percentiles` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |

### Lost pagerank
`GET https://zieapi.vercel.app/v1/analytics:botify/get-page-rank-lost` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |

### Get global information of the sitemaps found (sitemaps indexes, invalid sitemaps urls, etc
`GET https://zieapi.vercel.app/v1/analytics:botify/get-sitemaps-report` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |

### Sample list of URLs which were found in your sitemaps but outside of the
`GET https://zieapi.vercel.app/v1/analytics:botify/get-sitemaps-samples-out-of-config` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Sample list of URLs which were found in your sitemaps, within the project
`GET https://zieapi.vercel.app/v1/analytics:botify/get-sitemaps-samples-sitemaps-only` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Top domains
`GET https://zieapi.vercel.app/v1/analytics:botify/get-links-top-domains` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Top subddomains
`GET https://zieapi.vercel.app/v1/analytics:botify/get-links-top-subdomains` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Executes a query and returns a paginated response
`POST https://zieapi.vercel.app/v1/analytics:botify/get-urls` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| area | string | no | Analysis context to execute the query |
| page | integer | no | Page Number |
| size | integer | no | Page Size |
| body | object | no | JSON request body |

### Query aggregator
`POST https://zieapi.vercel.app/v1/analytics:botify/get-urls-aggs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| area | string | no |  |
| body | object | no | JSON request body |

### Gets an Analysis datamodel
`GET https://zieapi.vercel.app/v1/analytics:botify/get-urls-datamodel` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| area | string | no |  |

### A list of the CSV Exports requests and their current status
`GET https://zieapi.vercel.app/v1/analytics:botify/get-urls-exports` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Creates a new UrlExport object and starts a task that will export the results into a csv
`POST https://zieapi.vercel.app/v1/analytics:botify/create-urls-export` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| area | string | no |  |
| body | object | no | JSON request body |

### Checks the status of an CSVUrlExportJob object
`GET https://zieapi.vercel.app/v1/analytics:botify/get-urls-export-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| url_export_id | string | yes | Url Export ID |

### Return most frequent segments (= suggested patterns in the previous version)
`POST https://zieapi.vercel.app/v1/analytics:botify/get-urls-suggested-filters` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| area | string | no |  |
| body | object | no | JSON request body |

### Gets the detail of an URL for an analysis
`GET https://zieapi.vercel.app/v1/analytics:botify/get-url-detail` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| analysis_slug | string | yes | Analysis' identifier |
| url | string | yes | (Urlencoded) Searched URL |
| fields | array | no | comma separated list of fields to return (c.f. URLs Datamodel) |

### List all active projects for the user
`GET https://zieapi.vercel.app/v1/analytics:botify/get-user-projects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Match and replace parts of a URL based on rules passed in POST data
`POST https://zieapi.vercel.app/v1/analytics:botify/test-url-rewriting-rules` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |

### List all the project's saved filters (each filter's name, ID and filter value)
`GET https://zieapi.vercel.app/v1/analytics:botify/get-saved-filters` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| page | integer | no | Page Number |
| size | integer | no | Page Size |

### Retrieves a specific saved filter's name, ID and filter value
`GET https://zieapi.vercel.app/v1/analytics:botify/get-saved-filter` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| identifier | string | yes | Saved Filter's identifier |

### Project Query aggregator
`POST https://zieapi.vercel.app/v1/analytics:botify/get-project-urls-aggs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| username | string | yes | User's identifier |
| project_slug | string | yes | Project's identifier |
| area | string | no | Analysis context to execute the queries |
| last_analysis_slug | string | no | Last analysis on the trend |
| nb_analyses | integer | no | Max number of analysis to return |
| body | object | no | JSON request body |

## Example
```
curl "https://zieapi.vercel.app/v1/analytics:botify/get-project-analyses" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Botify API API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/analytics:botify/get-project-analyses with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Botify API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Botify API itself also needs your own key from botify.com.

### Can AI agents use the Botify API API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key analytics:botify.

### What is the status of the Botify API API?
Needs your own provider key (bring your own key)
