> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seomator.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Propose the profile and competitors from the site

> Reads the site, then writes the profile (description, category, business type, products, personas, country, language), the own brand and the competitors. Running it again replaces them. When the site cannot be read the job fails with `site_unreadable`: set `description` on the project and run it again. One step runs at a time per project, and only before tracking starts. Follow the job with `GET /v1/jobs/{id}`.



## OpenAPI

````yaml https://api.seomator.com/openapi.json post /v1/projects/{id}/onboarding/profile
openapi: 3.1.0
info:
  title: SEOmator API
  version: 0.1.0
servers:
  - url: https://api.seomator.com
security: []
paths:
  /v1/projects/{id}/onboarding/profile:
    post:
      tags:
        - ai visibility
      summary: Propose the profile and competitors from the site
      description: >-
        Reads the site, then writes the profile (description, category, business
        type, products, personas, country, language), the own brand and the
        competitors. Running it again replaces them. When the site cannot be
        read the job fails with `site_unreadable`: set `description` on the
        project and run it again. One step runs at a time per project, and only
        before tracking starts. Follow the job with `GET /v1/jobs/{id}`.
      parameters:
        - schema:
            type: string
            description: Project id (proj_…) or slug (the domain with dots as dashes).
          required: true
          description: Project id (proj_…) or slug (the domain with dots as dashes).
          name: id
          in: path
      responses:
        '202':
          description: The step is queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  job:
                    type: object
                    properties:
                      id:
                        type: string
                      projectId:
                        type: string
                      type:
                        type: string
                      status:
                        type: string
                        enum:
                          - queued
                          - running
                          - done
                          - failed
                      error:
                        type:
                          - string
                          - 'null'
                      chunksTotal:
                        type: number
                      chunksDone:
                        type: number
                      createdAt:
                        type: string
                      startedAt:
                        type:
                          - string
                          - 'null'
                      finishedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - projectId
                      - type
                      - status
                      - error
                      - chunksTotal
                      - chunksDone
                      - createdAt
                      - startedAt
                      - finishedAt
                    additionalProperties: {}
                required:
                  - job
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Try again later
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - bad_request
                - unauthorized
                - insufficient_credits
                - plan_limit
                - forbidden
                - not_found
                - conflict
                - rate_limit_exceeded
                - internal_server_error
                - service_unavailable
            message:
              type: string
            requestId:
              type: string
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

## Related topics

- [Propose topics and prompts from the profile](https://docs.seomator.com/api-reference/ai-visibility/propose-topics-and-prompts-from-the-profile.md)
- [Projects: set up, track and manage a site](https://docs.seomator.com/getting-started/projects.md)
- [Quickstart: get your first AI visibility numbers](https://docs.seomator.com/getting-started/quickstart.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.