# Sync opportunities from external data sources

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /admin_sync_sources:
    post:
      summary: Sync opportunities from external data sources
      deprecated: false
      description: >-
        Triggers synchronization from configured external data sources (DEV.to
        and RemoteOK). Returns results for each source including counts and any
        errors encountered.
      tags:
        - Admin
        - Admin
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncSourcesRequest'
      responses:
        '200':
          description: Sync completed (may include partial failures)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncSourcesResponse'
          headers: {}
          x-apidog-name: ''
      security: []
      x-apidog-folder: Admin
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/1150986/apis/api-25484715-run
components:
  schemas:
    SyncSourcesRequest:
      type: object
      properties:
        source:
          type: string
          enum:
            - all
            - devto
            - remoteok
          default: all
          description: >-
            Which data source to sync: 'all' syncs both, 'devto' syncs DEV.to
            only, 'remoteok' syncs RemoteOK only
        devto_tag:
          type: string
          default: hackathon
          description: >-
            Tag to search for on DEV.to (only used when source is 'devto' or
            'all')
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 30
          description: Maximum items to fetch per source
      x-apidog-orders:
        - source
        - devto_tag
        - limit
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
    SyncSourcesResponse:
      type: object
      properties:
        success:
          type: boolean
        sources_synced:
          type: integer
          description: Number of sources that were synced
        total_ingested:
          type: integer
          description: Total number of opportunities ingested across all sources
        results:
          type: array
          items:
            $ref: '#/components/schemas/SyncSourceResult'
          description: Results for each source synced
        message:
          type: string
      x-apidog-orders:
        - success
        - sources_synced
        - total_ingested
        - results
        - message
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
    SyncSourceResult:
      type: object
      properties:
        source:
          type: string
          enum:
            - dev_community
            - remoteok
          description: The data source identifier
        articles_found:
          type: integer
          description: Number of articles found (DEV.to only)
        jobs_found:
          type: integer
          description: Number of jobs found (RemoteOK only)
        ingested_count:
          type: integer
          description: Number of opportunities successfully ingested
        error:
          type: string
          description: Error message if the source sync failed
      x-apidog-orders:
        - source
        - articles_found
        - jobs_found
        - ingested_count
        - error
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes: {}
servers:
  - url: https://xmsx-hkkx-nz6p.n7e.xano.io/api:v1
    description: Production server
security: []

```
