Airtop Profiles API

Persist and delete browser profiles.

Operations 4

GET /v1/profile/{name} Get informations about a profile if it exists #
DELETE /v1/profiles Delete profiles #
POST /v1/profiles-duplicate Duplicate profile #
POST /v1/profiles-set-display-name Set profile display name #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/airtop:airtop-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

airtop-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Browser Control Profiles API
  version: 1.0.0
servers:
- url: https://api.airtop.ai/api
security:
- BearerAuth: []
tags:
- name: Profiles
paths:
  /v1/profile/{name}:
    get:
      description: Get a profile by name
      operationId: profile-get-info
      parameters:
      - description: Name of the profile to get
        example: my-profile
        in: path
        name: name
        required: true
        schema:
          description: Name of the profile to get
          examples:
          - my-profile
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileOutput'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Internal Server Error
      summary: Get informations about a profile if it exists
      tags:
      - Profiles
      x-fern-audiences:
      - alpha
  /v1/profiles:
    delete:
      description: Delete profiles matching by id
      operationId: profiles-delete
      parameters:
      - description: DEPRECATED. Use profileNames.
        example:
        - abc
        - '123'
        explode: true
        in: query
        name: profileIds
        schema:
          deprecated: true
          description: DEPRECATED. Use profileNames.
          examples:
          - - abc
            - '123'
          items:
            type: string
          type:
          - array
          - 'null'
      - description: A comma-separated list of profile names.
        example:
        - abc
        - '123'
        explode: true
        in: query
        name: profileNames
        schema:
          description: A comma-separated list of profile names.
          examples:
          - - abc
            - '123'
          items:
            type: string
          type:
          - array
          - 'null'
      responses:
        '204':
          description: No Content
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Error
      summary: Delete profiles
      tags:
      - Profiles
      x-fern-audiences:
      - public
  /v1/profiles-duplicate:
    post:
      operationId: profiles-duplicate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Profiles-duplicateRequest'
        required: true
      responses:
        '204':
          description: No Content
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Error
      summary: Duplicate profile
      tags:
      - Profiles
      x-fern-audiences:
      - alpha
  /v1/profiles-set-display-name:
    post:
      description: Set the free-form display name of a profile without changing its immutable name
      operationId: profiles-set-display-name
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Profiles-set-display-nameRequest'
        required: true
      responses:
        '204':
          description: No Content
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Error
      summary: Set profile display name
      tags:
      - Profiles
      x-fern-audiences:
      - alpha
components:
  schemas:
    Profiles-set-display-nameRequest:
      additionalProperties: false
      properties:
        displayName:
          description: New free-form display name for the profile
          examples:
          - My Profile
          type: string
        name:
          description: Immutable name of the profile to relabel
          examples:
          - my-profile
          type: string
      required:
      - name
      - displayName
      type: object
    ProfileOutput:
      additionalProperties: false
      properties:
        createdAt:
          description: The date and time the profile was created. Might be null for old profiles
          format: date-time
          type:
          - string
          - 'null'
        createdBy:
          description: The ID of the user who created the profile. Might be null for profiles created before user-scoping was introduced.
          type:
          - string
          - 'null'
        displayName:
          description: Free-form label for the profile. Falls back to the profile name when no display name has been set.
          type: string
        name:
          description: Immutable identifier of the profile.
          type: string
        updatedAt:
          description: The date and time the profile was last updated. Might be null for profiles not updated recently
          format: date-time
          type:
          - string
          - 'null'
      required:
      - name
      - displayName
      - createdBy
      - createdAt
      - updatedAt
      type: object
    ErrorEnvelope:
      additionalProperties: false
      properties:
        data: {}
        errors:
          items:
            $ref: '#/components/schemas/Issue'
          type:
          - array
          - 'null'
        httpStatus:
          format: int64
          type: integer
        message:
          type: string
        meta: {}
        warnings:
          items:
            $ref: '#/components/schemas/Issue'
          type:
          - array
          - 'null'
      required:
      - httpStatus
      - message
      - meta
      - data
      - errors
      - warnings
      type: object
    Issue:
      additionalProperties: false
      properties:
        code:
          description: Issue code.
          type:
          - string
          - 'null'
        details:
          additionalProperties: {}
          description: Any associated details.
          type:
          - object
          - 'null'
        message:
          description: Message describing the issue.
          type: string
        reason:
          description: Underlying reason for the issue.
          type:
          - string
          - 'null'
        value:
          additionalProperties: {}
          description: Structured payload describing the issue, for issues that carry one.
          type:
          - object
          - 'null'
      required:
      - message
      type: object
    Profiles-duplicateRequest:
      additionalProperties: false
      properties:
        source:
          description: name of the profile to duplicate
          examples:
          - oldProfile
          type: string
        target:
          description: new name of the profile
          examples:
          - newProfile
          maxLength: 128
          minLength: 1
          pattern: ^[a-zA-Z0-9-]+$
          patternDescription: alphanumeric with hyphen
          type: string
      required:
      - source
      - target
      type: object
  securitySchemes:
    BearerAuth:
      scheme: bearer
      type: http
      x-fern-bearer:
        name: apiKey
x-provenance:
  method: harvested
  publisher: Airtop
  source: https://api.airtop.ai/api/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)