---
components:
  securitySchemes:
    bulkpost_auth:
      description: 'The client_id is your craigslist email and account id, separated
        by a semicolon: bob@test.com;1234'
      flows:
        clientCredentials:
          scopes:
            bulkpost.account.billing: account.billing and invoices for your account
            bulkpost.account.message: the accountMessage we send you in API results
            bulkpost.account.stats: statistics on your postings
            bulkpost.betatester: test the new endpoints, ask your craigslist representative
              for access
            bulkpost.posting: access/edit postings
          tokenUrl: https://bapi.craigslist.org/bulkpost/oauth/access-token
      type: oauth2
info:
  description: |+
    The [OpenAPI](https://spec.openapis.org/oas/v3.0.1)/[Swagger](https://swagger.io/specification/)
    YAML definitions are available at the link above.

    The &ldquo;Authorize&rdquo; and &ldquo;Try it out&rdquo; buttons are live, if you have an active bulkposting account.

    The [OAuth2](https://www.oauth.com/) [access_token request](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/)
    is structured like this:

        curl -v -s 'https://bapi.craigslist.org/bulkpost/oauth/access-token' \
           -H "Authorization: Basic $(echo -n "$USER_EMAIL;$ACCOUNT_ID:$USER_PW" | base64)" \
           -d grant_type=client_credentials \
           -d scope="bulkpost.posting bulkpost.account.billing"

    which returns this:

        {
          "access_token": "eyJl...vd4",
          "expires_in": 3600,
          "scopes": [
            "bulkpost.posting bulkpost.account.billing"
          ],
          "token_type": "Bearer"
        }

    And subsequent API requests would present that `access_token` in an HTTP header:

        Authorization: Bearer eyJl...vd4

    Requesting an access_token with the scope `bulkpost.posting` will give the
    token access to all endpoints whose scope is underneath that, like
    `bulkpost.posting.delete`.

    The documentation for using our RSS service to create a new post is [here](https://www.craigslist.org/about/bulk_posting_interface).

    **Authorized users only.**

  title: Craigslist Bulkpost API
  version: v1
openapi: 3.0.1
paths:
  /bulkpost/v1/account/billing/credit:
    get:
      description: |+
        Scopes: bulkpost.account.billing

      operationId: v1-get-bulkpost2GetAvailableCredit
      parameters: []
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  creditLine:
                    amount: 100000
                    currency: USD
                    exponent: 2
                  creditRemaining:
                    amount: 300
                    currency: USD
                    exponent: 2
                  creditUsed:
                    amount: 700
                    currency: USD
                    exponent: 2
                errors: []
              schema: &1
                properties:
                  accountMessages:
                    items:
                      additionalProperties: true
                      properties:
                        message:
                          type: string
                        messageId:
                          type: string
                      required:
                      - message
                      - messageId
                      type: object
                    type: array
                  apiVersion:
                    type: number
                  data:
                    additionalProperties: true
                    properties:
                      message:
                        type: string
                    type: object
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - message
                      type: object
                    type: array
                required:
                - apiVersion
                - data
                - errors
                - accountMessages
                type: object
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: &2
                additionalProperties: true
                properties:
                  accountMessages:
                    items:
                      additionalProperties: true
                      properties:
                        message:
                          type: string
                        messageId:
                          type: string
                      required:
                      - message
                      - messageId
                      type: object
                    type: array
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - message
                      type: object
                    type: array
                required:
                - errors
                type: object
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.billing
      summary: get credit
      tags:
      - account-billing
  /bulkpost/v1/account/billing/current-pricing/area/{areaAbbr}/category/{categoryAbbr}:
    get:
      description: |
        Scopes: bulkpost.account.billing

        Fetches our current pricing to post in a given area and category.
        Prices may change without notice.

        For a list of values for areaAbbr see [https://reference.craigslist.org/Areas](https://reference.craigslist.org/Areas)

        and for categoryAbbr see [https://reference.craigslist.org/Categories](https://reference.craigslist.org/Categories)
      operationId: v1-get-bulkpost2GetPricingAreaCat
      parameters:
      - in: path
        name: areaAbbr
        required: true
        schema:
          type: string
      - in: path
        name: categoryAbbr
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages:
                - message: System maintenance tonight.
                acountMessages: []
                apiVersion: 1
                data:
                  area: sfo
                  cat: ofc
                  currentPricing:
                    amount: 100000
                    currency: USD
                    exponent: 2
                errors:
                - code: 0
                  message: some error message
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.billing
      summary: get current pricing for area+cat
      tags:
      - account-billing
  /bulkpost/v1/account/billing/make-invoice:
    post:
      description: |+
        Scopes: bulkpost.account.billing

      operationId: v1-post-bulkpost2MakeInvoiceFromUninvoicedItems
      parameters: []
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  invoiceIDs:
                  - '1234321'
                  - '1234322'
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.billing
      summary: generate an early invoice
      tags:
      - account-billing
  /bulkpost/v1/account/billing/posting-block-balances:
    get:
      description: |+
        Scopes: bulkpost.account.billing

      operationId: v1-get-bulkpost2GetPostingBlockBalances
      parameters: []
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                - area: htf
                  productClass: CAR
                  productName: hartford cars & trucks - by dealer block
                  remainingPosts: 2
                - area: fre
                  productClass: JOB
                  productName: fresno / madera job posting block
                  remainingPosts: 3
                errors: []
              schema:
                properties:
                  accountMessages:
                    items:
                      additionalProperties: true
                      properties:
                        message:
                          type: string
                        messageId:
                          type: string
                      required:
                      - message
                      - messageId
                      type: object
                    type: array
                  apiVersion:
                    type: number
                  data:
                    items:
                      additionalProperties: false
                      properties:
                        area:
                          type: string
                        productClass:
                          type: string
                        productName:
                          type: string
                        remainingPosts:
                          type: integer
                      required:
                      - area
                      - productClass
                      - productName
                      - remainingPosts
                      type: object
                    type: array
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - message
                      type: object
                    type: array
                required:
                - apiVersion
                - data
                - errors
                - accountMessages
                type: object
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.billing
      summary: get posting block balances
      tags:
      - account-billing
  /bulkpost/v1/account/message/{messageId}/ack:
    put:
      description: |
        Scopes: bulkpost.account.message

        Acknowledge one of the account messages showing up in our standard API responses to keep it from appearing in subsequent API responses.
      operationId: v1-put-bulkpost2AckAccountMessage
      parameters:
      - in: path
        name: messageId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: account message acknowledged
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.message
      summary: acknowledge account message as read
      tags:
      - account
  /bulkpost/v1/account/stats/all-postings:
    get:
      description: |
        Scopes: bulkpost.account.stats

        Up to thirty days of usage statistics (all requests, not unique viewers)
        for all postings for the account.

        Statistics are available in a rolling thirty day window through
        midnight/00:00 UTC yesterday.

        Statistics availability for postings persist through any posting status changes
        (deletion, holds, etc).

        Data will be reported on these keys:

            - impressions
            - views
            - contact: viewers clicking the "reply" button
            - contact_chat: viewers selecting the "chat" option
            - contact_phone: viewers selecting the "call" option
            - contact_email: viewers selecting the "email" option
            - share
            - favorite

        The Swagger Web UI will only show the first twenty postings to avoid locking up
        your browser.

            -
                 postingId: "7123456780"
                 impressions:
                   - [1746748800, 57]     [<unix timestamp midnight UTC marking a particular day>, <count>]
                   - [1746835200, 841]    ...rest of time-series data
                 views:
                   - [1746748800, 9849]   [<timestamp>, <count>]
            -
                postingId: "7123456781"
                ...etc
      operationId: v1-get-bulkpost2StatsAllPostings
      parameters:
      - description: yyyy-mm-dd, the start of the window, defaults to 31 days ago
        in: query
        name: start
        required: false
        schema:
          type: string
      - description: yyyy-mm-dd, the end of the window, defaults to 1 days ago
        in: query
        name: stop
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                - contact:
                  - - 1746748800
                    - 4
                  - - 1746835200
                    - 19
                  contact_chat:
                  - - 1746748800
                    - 1
                  contact_email:
                  - - 1746748800
                    - 3
                  - - 1746835200
                    - 18
                  contact_phone:
                  - - 1746835200
                    - 1
                  favorite:
                  - - 1746748800
                    - 1
                  impressions:
                  - - 1746748800
                    - 57
                  - - 1746835200
                    - 841
                  postingId: '7123456780'
                  share:
                  - - 1746748800
                    - 1
                  views:
                  - - 1746748800
                    - 4
                  - - 1746835200
                    - 19
                - impressions:
                  - - 1746748800
                    - 65
                  postingId: '7123456785'
                errors:
                - code: 0
                  message: some error message
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.stats
      summary: stats for posting views
      tags:
      - account
  /bulkpost/v1/account/stats/posting/{postingId}:
    get:
      description: |
        Scopes: bulkpost.account.stats

        Up to thirty days of usage statistics (all requests, not unique viewers)
        for the given postingId.

        Statistics are available from (today minus 31 days) through yesterday.

        See the all-postings endpoint for an explanation of what the data represents.
      operationId: v1-get-bulkpost2StatsOnePosting
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      - description: yyyy-mm-dd, the start of the window, defaults to 31 days ago
        in: query
        name: start
        required: false
        schema:
          type: string
      - description: yyyy-mm-dd, the end of the window, defaults to 1 days ago
        in: query
        name: stop
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                - contact:
                  - - 1746748800
                    - 4
                  - - 1746835200
                    - 19
                  contact_chat:
                  - - 1746748800
                    - 1
                  contact_email:
                  - - 1746748800
                    - 3
                  - - 1746835200
                    - 18
                  contact_phone:
                  - - 1746835200
                    - 1
                  favorite:
                  - - 1746748800
                    - 1
                  impressions:
                  - - 1746748800
                    - 57
                  - - 1746835200
                    - 841
                  share:
                  - - 1746748800
                    - 1
                  views:
                  - - 1746748800
                    - 4
                  - - 1746835200
                    - 19
                errors:
                - code: 0
                  message: some error message
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.account.stats
      summary: stats for a posting's views
      tags:
      - account
  /bulkpost/v1/posting/zip/{zip}/area:
    get:
      description: |
        Scopes: bulkpost.posting

        Look up the craigslist area for a given zip code.
      operationId: v1-get-bulkpost2Zip2Area
      parameters:
      - in: path
        name: zip
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  abbreviation: bos
                  description: boston
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting
      summary: US ZIP code to craigslist area
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}:
    delete:
      description: |+
        Scopes: bulkpost.posting.delete

      operationId: v1-delete-bulkpost2Delete
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: posting 12345 has been deleted
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.delete
      summary: delete posting
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}/body:
    get:
      description: |
        Scopes: bulkpost.posting.get.body

        Retrieves the posting body.
      operationId: v1-get-bulkpost2GetBody
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  body: The posting body
                errors: []
              schema: &3
                properties:
                  accountMessages:
                    items:
                      additionalProperties: true
                      properties:
                        message:
                          type: string
                        messageId:
                          type: string
                      required:
                      - message
                      - messageId
                      type: object
                    type: array
                  apiVersion:
                    type: number
                  data:
                    additionalProperties: false
                    oneOf:
                    - required:
                      - price
                    - required:
                      - remuneration
                    - required:
                      - body
                    properties:
                      body:
                        type: string
                      message:
                        type: string
                      price:
                        type: integer
                      remuneration:
                        type: string
                    type: object
                  errors:
                    items:
                      additionalProperties: true
                      properties:
                        code:
                          type: number
                        message:
                          type: string
                      required:
                      - message
                      type: object
                    type: array
                required:
                - apiVersion
                - data
                - errors
                - accountMessages
                type: object
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.get.body
      summary: get body
      tags:
      - postings
    put:
      description: |
        Scopes: bulkpost.posting.edit.body

        Postings in the "ctd / cars & trucks by dealer" category must have a VIN, which must be unchanged since the original posting.
        There are no restrictions on any other category.
      operationId: v1-put-bulkpost2EditBody
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                body:
                  description: New posting body
                  format: textarea
                  type: string
              required:
              - body
              type: object
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  body: The new posting body
                  message: posting body updated successfully
                errors: []
              schema: *3
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.body
      summary: edit body
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}/images:
    get:
      description: |
        Scopes: bulkpost.posting.get.images

        Returns a dictionary with data about the images for this posting.

        Note "position" is zero-based.
      operationId: v1-get-bulkpost2GetPostingImageInfos
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  imageInfo:
                  - filename: /file/name/one.gif
                    format: GIF
                    height: 570
                    id: 4:00101_b1ztTgNtBAU
                    position: 0
                    width: 1201
                  - filename: /file/name/two.webp
                    format: WEBP
                    height: 570
                    id: 4:00202_9KJPFAVIZCM
                    position: 1
                    width: 1201
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.get.images
      summary: get image infos for posting
      tags:
      - images
    post:
      description: |
        Scopes: bulkpost.posting.edit.images

        Subject to maximum limit or 24 images per posting.
      operationId: v1-post-bulkpost2ReorderPostingImages
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                imageIdList:
                  description: Comma-separated list of imageIds, e.g. '4:00202_9KJPFAVIZCM,4:00101_b1ztTgNtBAU,4:00808_abg1hBvpXV1'.
                  type: string
              required:
              - imageIdList
              type: object
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: image order is now xxx,yyy,zzz
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.images
      summary: reorder posting images
      tags:
      - images
    put:
      description: |
        Scopes: bulkpost.posting.edit.images

        Expects multipart/form-data.

        Optional values for either insert_position or replace_position are zero-based.

        See /account/stats/all-postings above for list of fields returned and other
        details.
      operationId: v1-put-bulkpost2UploadImage
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: The image itself, raw binary data.
                  format: binary
                  type: string
                insert_position:
                  description: Optional position (0-based) to **insert** the new image
                    in the list for the posting (if neither insert_position nor replace_position
                    are sent then the image will be added to the end of the list)
                  example: 7
                  type: string
                replace_position:
                  description: Optional position to (0-based) **replace** the new
                    image in the list for the posting (if neither insert_position
                    nor replace_position are sent then the image will be added to
                    the end of the list)
                  example: 15
                  type: string
              required:
              - file
              type: object
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  imageIdList: 4:00000_hS9NqBXAAaa,4:00000_hS9NqBXBBbb,4:00000_hS9NqBXG3Lq
                  imageInfo:
                    filename: path/to/thepicture.jpg
                    format: JPEG
                    height: 570
                    id: 4:00000_hS9NqBXG3Lq
                    position: 2
                    width: 1201
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.images
      summary: upload image
      tags:
      - images
  /bulkpost/v1/postings/{postingId}/images/{imageId}:
    delete:
      description: |
        Scopes: bulkpost.posting.edit.images

        Remove the image from the posting. The image itself is not actually deleted and can still be publicly retrieved and referenced by other postings.
      operationId: v1-delete-bulkpost2RemovePostingImage
      parameters:
      - in: path
        name: imageId
        required: true
        schema:
          type: string
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: image 4:00808_abdeFGHijkL_001001 removed successfully from
                    posting 123456789
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.images
      summary: remove image from posting
      tags:
      - images
  /bulkpost/v1/postings/{postingId}/price:
    get:
      description: |
        Scopes: bulkpost.posting.get.price

        For postings in categories that have a "price" field.
      operationId: v1-get-bulkpost2GetPrice
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  price: 99
                errors: []
              schema: *3
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.get.price
      summary: get price
      tags:
      - postings
    put:
      description: |
        Scopes: bulkpost.posting.edit.price

        For postings in categories that have a "price" field.
      operationId: v1-put-bulkpost2EditPrice
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                price:
                  description: Integer price, in the currency of the posting's location.
                  type: string
              required:
              - price
              type: object
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: price changed successfully
                  price: 99
                errors: []
              schema: *3
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.price
      summary: edit price
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}/remuneration:
    get:
      description: |
        Scopes: bulkpost.posting.get.remuneration

        For postings in the "jobs" and "gigs" categories.
      operationId: v1-get-bulkpost2GetRemuneration
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  remuneration: $19.95/hr plus tips
                errors: []
              schema: *3
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.get.remuneration
      summary: get remuneration
      tags:
      - postings
    put:
      description: |
        Scopes: bulkpost.posting.edit.remuneration

        For postings in the "jobs" and "gigs" categories.
      operationId: v1-put-bulkpost2EditRemuneration
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                remuneration:
                  description: Text field describing compensation for the position.
                  type: string
              required:
              - remuneration
              type: object
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: remuneration changed successfully
                  remuneration: $19.95/hr plus tips
                errors: []
              schema: *3
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.edit.remuneration
      summary: edit remuneration
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}/status:
    get:
      description: |+
        Scopes: bulkpost.posting.get.status

      operationId: v1-get-bulkpost2GetPostingStatus
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  status: active|deleted|expired|pending|removed
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.get.status
      summary: get current status of posting
      tags:
      - postings
  /bulkpost/v1/postings/{postingId}/undelete:
    put:
      description: |+
        Scopes: bulkpost.posting.undelete

      operationId: v1-put-bulkpost2Undelete
      parameters:
      - in: path
        name: postingId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                accountMessages: []
                apiVersion: 1
                data:
                  message: posting 12345 has been undeleted
                errors: []
              schema: *1
          description: successful response
        '400':
          content:
            application/json:
              example:
                errors:
                - code: 0
                  message: posting 7000012345 not found
                - accountMessages
                - - message: System maintenance tonight.
              schema: *2
          description: errors in request
        '404':
          description: resource not found, see 400 response for example
        '500':
          description: server error, see 400 response for example
      security:
      - bulkpost_auth:
        - bulkpost.posting.undelete
      summary: undelete posting
      tags:
      - postings
tags:
- description: access and manipulate postings data
  name: postings
- description: manipulate images attached to postings
  name: images
- description: retrieve and work with corporate account/billing information
  name: account-billing
- description: general account-related information
  name: account
...
