Yelp Data Ingestion API

Data Ingestion operations documented in the Yelp developer reference: Business Update; Job Status.

Operations 2

POST /ingest/create Business Update #
GET /ingest/status/{job_id} Job Status #

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/yelp:yelp-data-ingestion-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

yelp-data-ingestion-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Data Ingestion API
  version: '1.0'
servers:
- url: https://partner-api.yelp.com/v1
security:
- basic: []
tags:
- name: Data Ingestion
paths:
  /ingest/create:
    post:
      summary: Business Update
      tags:
      - Data Ingestion
      description: The Yelp Data Ingestion API provides a means for partners to programmatically perform updates on a large number of businesses asynchronously. Partners can perform updates on various attributes. The businesses and fields that can be updated are contract-dependent.
      operationId: create_business_update_v1
      requestBody:
        description: Request body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                matching_criteria:
                  $ref: '#/components/schemas/MatchingCriteria'
                options:
                  type: object
                  properties:
                    create_if_missing:
                      type: boolean
                      description: Whether to create the business if no matching business is found. Defaults to true if not specified.
                    use_matching_criteria_for_update:
                      type: boolean
                      description: Whether to use the information in the matching criteria to also update the business. When true, the fields from the matching_criteria are merged into the update object. Any fields already present in the update object take precedence. Defaults to false if not specified.
                update:
                  $ref: '#/components/schemas/Update'
                partner_business_id:
                  type: string
                  description: Optional unique partner identifier for the business. Must not contain leading or trailing spaces. When provided, partner identifiers cannot change and must remain unique. Maximum length is 100.
              required:
              - matching_criteria
      responses:
        $ref: '#/components/schemas/JobCreatedResponses'
  /ingest/status/{job_id}:
    get:
      summary: Job Status
      tags:
      - Data Ingestion
      description: Obtain the status of a Data Ingestion job and its individual parts.
      operationId: get_business_update_status_v1
      parameters:
      - in: path
        name: job_id
        required: true
        schema:
          type: string
        description: Identifier of the job as returned from the Ingestion `POST`
      - in: header
        name: detail_level
        schema:
          type: integer
        description: Parameter to check if business attributes have been applied
      responses:
        $ref: '#/components/schemas/JobStatusResponses'
components:
  schemas:
    MatchingCriteria:
      type: object
      properties:
        address1:
          type: string
          description: 'The first line of the business’s address. Maximum length is 64; only digits, letters, spaces, and _-’/#&,.'': are allowed.

            '
        address2:
          type: string
          description: 'The second line of the business’s address. Maximum length is 64; only digits, letters, spaces, and _-’/#&,.'': are allowed.

            '
        address3:
          type: string
          description: 'The third line of the business’s address. Maximum length is 64; only digits, letters, spaces, and _-’/#&,.'': are allowed.

            '
        city:
          type: string
          description: 'The city of the business. Maximum length is 64; only digits, letters, spaces, and _-’.() are allowed.

            '
        country:
          type: string
          description: 'The ISO 3166-1 alpha-2 country code of the business. Maximum length is 2.

            '
        latitude:
          type: number
          description: 'The WGS84 latitude of the business in decimal degrees. Must be between -90 and 90.

            '
        longitude:
          type: number
          description: 'The WGS84 longitude of the business in decimal degrees. Must be between -180 and 180.

            '
        name:
          type: string
          description: 'The name of the business. Maximum length is 64; only digits, letters, spaces, and _!#$%&+,-.’/:?@'' are allowed.

            '
        phone:
          type: string
          description: 'The phone number of the business, either (a) locally-formatted with digits only (e.g., 016703080) or (b) internationally-formatted with a leading + sign and digits only after (+35316703080). Maximum length is 32.

            '
        postal_code:
          type: string
          description: 'The postal code of the business. Maximum length is 12.

            '
        state:
          type: string
          description: 'The ISO 3166-2 code for the region/province of the business. Maximum length is 3.

            '
        yelp_business_id:
          type: string
          description: 'Unique Yelp identifier of the business if available. Used as a hint when finding a matching business.

            '
      required:
      - city
      - country
      - name
      - postal_code
      - state
    JobStatus200Response:
      description: '200'
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
              completed_at:
                type: string
              created_at:
                type: string
              business_results:
                type: array
                items:
                  type: object
                  properties:
                    status:
                      type: string
                    yelp_business_id:
                      type: string
                    partner_business_id:
                      type: string
                    update_results:
                      type: object
                      properties:
                        hours:
                          type: object
                          properties:
                            status:
                              type: string
                            requested_value:
                              type: array
                              items:
                                type: object
                                properties:
                                  close:
                                    type: string
                                  open:
                                    type: string
                                  day:
                                    type: string
                        wifi:
                          type: object
                          properties:
                            status:
                              type: string
                            requested_value:
                              type: string
          examples:
            Result:
              value:
                status: PROCESSING
                completed_at: null
                created_at: '2018-11-29T18:24:53+00:00'
                business_results:
                - status: PROCESSING
                  yelp_business_id: pzni3DBjMPxrBsbKbf2gbQ
                  update_results:
                    hours:
                      status: COMPLETED
                      requested_value:
                      - close: '15:00'
                        open: 08:00
                        day: thursday
                    wifi:
                      status: PROCESSING
                      requested_value: 'no'
                  partner_business_id: null
    JobStatusResponses:
      '200':
        $ref: '#/components/schemas/JobStatus200Response'
      '400':
        $ref: '#/components/schemas/Empty400Response'
    Update:
      type: object
      properties:
        about_this_business_history:
          type: string
          description: The history of the business. Minimum length is 15, maximum is 1,000; URLs, all caps, and HTML tags are not allowed.
        service_type_v2:
          type: object
          description: Reservation configuration for the business. Required for partners providing reservation availability.
          properties:
            active:
              type: boolean
              description: Whether this business is active for reservations. Set to false to remove from Yelp.
            service_type:
              type: string
              enum:
              - restaurant_reservation
              description: Type of service. Currently only "restaurant_reservation" is supported.
            restaurant_reservation:
              type: object
              description: Restaurant reservation configuration.
              properties:
                party_min:
                  type: integer
                  minimum: 1
                  description: Minimum party size accepted.
                party_max:
                  type: integer
                  minimum: 1
                  description: Maximum party size accepted.
                advance_booking_days:
                  type: integer
                  minimum: 1
                  maximum: 365
                  description: How many days in advance reservations are accepted.
                min_notice_hours:
                  type: integer
                  minimum: 0
                  maximum: 72
                  description: Minimum lead time in hours before a slot can be booked.
                scheduled_days:
                  type: array
                  items:
                    type: string
                    enum:
                    - monday
                    - tuesday
                    - wednesday
                    - thursday
                    - friday
                    - saturday
                    - sunday
                  description: Days of the week the restaurant accepts reservations.
                services:
                  type: array
                  minItems: 1
                  description: Dining services offered. Use service_id "default" for standard dining.
                  items:
                    type: object
                    properties:
                      service_id:
                        type: string
                        description: Stable identifier for the service.
                      name:
                        type: string
                        description: Display name for the service.
                    required:
                    - service_id
                    - name
                seating_areas:
                  type: array
                  description: Seating areas available at this venue.
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier for this seating area.
                      name:
                        type: string
                        description: Display name (e.g., "Patio").
                      max_party_size:
                        type: integer
                        description: Maximum covers for this area.
                    required:
                    - id
                    - name
                    - max_party_size
                credit_card_policies:
                  type: array
                  description: Credit card hold/deposit policies. Leave empty if none required.
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Policy identifier referenced by availability slots.
                    required:
                    - id
              required:
              - party_min
              - party_max
              - advance_booking_days
              - min_notice_hours
              - scheduled_days
              - services
              - seating_areas
          required:
          - active
          - service_type
          - restaurant_reservation
    Empty400Response:
      description: '400'
      content:
        application/json:
          schema:
            type: object
          examples:
            Result:
              value: {}
    JobCreatedProgram200Response:
      description: '200'
      content:
        application/json:
          schema:
            type: object
            properties:
              job_id:
                type: string
            required:
            - job_id
          examples:
            Result:
              value:
                job_id: prvtN-nilb4mUynGGgKuBQ
    JobCreatedResponses:
      '200':
        $ref: '#/components/schemas/JobCreatedProgram200Response'
      '400':
        $ref: '#/components/schemas/Empty400Response'
  securitySchemes:
    basic:
      type: http
      scheme: basic
x-provenance:
  method: searched
  source: https://docs.developer.yelp.com/reference
  harvested: '2026-11-05'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.developer.yelp.com/reference/create_business_update_v1.md
  - https://docs.developer.yelp.com/reference/get_business_update_status_v1.md
  merge:
    pages: 2
    deduped: 2
    conflicts_kept_first: 0